【发布时间】:2021-08-20 18:10:30
【问题描述】:
程序的输出是A,不应该是B。如果我将 Class A 中的方法修饰符更改为 public 则输出为 B。有人能解释一下这里发生了什么吗?
代码:
public class HelloWorld {
public static void main(String[] args) {
HelloWorld hw = new HelloWorld();
hw.createInstance();
}
public void createInstance() {
A b = new B();
b.isTrue();
}
public class A {
private void isTrue() {
System.out.println("A");
}
}
public class B extends A {
public void isTrue() {
System.out.println("B");
}
}
}
输出: A
【问题讨论】:
标签: java type-conversion polymorphism inner-classes private-methods