以下是简单的继承程序。
{{1}}
在这种情况下调用子类的fun方法,但是不调用display方法并且发生编译错误。
答案 0 :(得分:0)
conecpt称为动态方法调度或运行时多态。
根据这个,您可以将object (new ClassName();)
派生类存储在Base类的reference variable (BaseClass b)
中。
但是通过这样做,只会调用 Base类自己的方法的方法,或者调用子类中的重写方法。通过这种方法,无法调用子类自己的方法。
这就是为什么你在显示方法上输出派生类的有趣方法和错误。
Base obj = new Sub();
obj.fun(); //-----------> In fun
obj.display(); //-----------> Error
obj = new Base();
obj.fun(); //-----------> fun
这是动态方法调度。