是不是這個子類繼承了所有東西都是超類真?但子類無法訪問其超類的私有屬性/方法,但可以訪問它自己的。所以我寫了一個測試程序。但似乎子類沒有一個!私有成員沒有被Java中的子類繼承(或可以覆蓋)?
class a {
private void set() {
System.out.println("a.set()");
}
}
public class b extends a {
// private void set() {
// System.out.pritln("b.set()");
// }
void f() {
set();
}
public static void main(String[] args) {
b b = new b();
b.f();
}
}
如果我註釋掉b中的set()方法,它將不會編譯。
有什麼想法? JVM視圖的任何解釋?
它們是繼承的,但默認情況下不可訪問。如果你真的想,你可以利用一些技巧讓它們在運行時變得可訪問。 – aroth 2012-07-26 01:54:40