我需要修改jar文件中某个类的某些功能。 因为我需要保留大部分功能,所以我想扩展所需的类并覆盖应该改变的方法。如果子类与父类中的私有变量具有相同名称的变量,将使用什么?
但一些变量被声明为私人,所以我无法访问它们。 因此如果我在子类中声明一个具有相同名称的对象会发生什么? (见例子)
package abc;
class Parent {
private Object var;
String func_1() {
//do something to var
func_2();
}
void func_2() {
//do something to var
}
}
而子类:
package abc;
class Child extends Parent {
private Object var;
/* @Override */
String func_1(){
//do something to var
func_2();
}
}
将func_2
操纵家长var
或子女var
?
[基本和派生类共享变量时会发生什么]的可能重复(http://stackoverflow.com/questions/5630486/what-happens-when-base-and-derived-classes-share-a-variable ) – 2014-11-25 08:30:33
你为什么不测试它?为每个私有变量分配不同的值,并在'func_2'中输出变量值。或者使用你的调试器。 – 2014-11-25 08:31:15
就“Child”而言,Parent.var不存在。就“Parent”而言,“Child.var”不存在。每个人都使用自己的价值。 – 2014-11-25 08:31:56