我有下面的类方式:继承在Java不工作,我希望
public class X {
public void A() {
B();
}
private static void B() {
System.out.println("111111111");
}
}
现在我有以下的继承类Z:
public class Z extends X {
private static void B() {
System.out.println("22222222");
}
}
现在,如果我做
Z myClass = new Z();
Z.A();
我将得到:111111111作为结果。 (另外,eclipse告诉我,继承类中的B()永远不会被调用)。
为什么?我怎样才能运行继承的B方法?
静态方法不是多态调用的。编译时它们是静态绑定的。使用实例方法。并且不要私有:私有方法是私有的,因此不能被覆盖。 https://docs.oracle.com/javase/tutorial/java/IandI/override.html –