以下Java程序的输出?
class Base {
public void show() {
System.out.println("Base::show() called");
}
}
class Derived extends Base {
public void show() {
System.out.println("Derived::show() called");
}
}
public class Main {
public static void main(String[] args) {
Base b = new Derived();;
b.show();
}
}
(A)派生:: show()被调用
(B) Base :: show()被调用答案: (A)
说明:在上面的程序中,b是对Base类型的引用,并且是Derived类的对象。
在Java,默认情况下函数是虚拟的。因此发生了运行时多态,并调用了派生fun()。
这个问题的测验