是不是这个子类继承了所有东西都是超类真?但子类无法访问其超类的私有属性/方法,但可以访问它自己的。所以我写了一个测试程序。但似乎子类没有一个!私有成员没有被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