我需要修改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