我有以下java代码。
class A {
public void method1() {
System.out.println("A 1");
method2();
}
public void method2() {
System.out.println("A 2");
}
}
class B extends A {
@Override
public void method2() {
System.out.println("B 2");
}
}
public class Tester {
public static void main(String[] args) {
A a = new B();
a.method1();
}
}
它打印
A 1
B 2
- 当调用 a.method1() 时,运行时到底发生了什么?
- 如何从父级调用派生方法?
- 它是在查看对象和方法名称字符串并在运行时调用方法吗?
- 它是默认调用 this.method2() 吗?