运行结果:
Test:print() called
解释 :它是动态方法分派的一个例子。 引用变量 b
的类型在运行时确定。 在编译时,检查该方法是否存在于基类中。 在这种情况下,它在子类中被覆盖,因此,在运行时调用派生类方法。
106、以下 Java 程序的输出是什么?
class BaseTest {
void print() {
System.out.println("BaseTest:print() called");
}
}
public class Test extends BaseTest {
void print() {
System.out.println("Test:print() called");
}
public static void main(String args[]) {
BaseTest b = new Test();
b.print();
}
}
运行结果:
Test:print() called
解释 :它是动态方法分派的一个例子。 引用变量 b
的类型在运行时确定。 在编译时,检查该方法是否存在于基类中。 在这种情况下,它在子类中被覆盖,因此,在运行时调用派生类方法。