超类不能知道子类方法。
这样考虑:
你有超一流的
Pet
你有两个子类
Pet
,即:Cat
,Dog
两个子类将具有相同的特征,例如
speak
- 该
Pet
超意识到这些,因为所有Pet
S能说话(即使它不知道此 *** 作的确切机制) - 一
Dog
但可以做的事情,猫不能,即eatHomework
- 如果将a强制转换
Dog
为aPet
,则应用程序的观察者将不会意识到Pet
a实际上是aDog
(即使我们将其称为实现者) - 考虑到这一点,调用
eatHomework
aPet
您可以通过告诉程序您知道
sup的类型来解决问题
subclass
public class Testing{ public static void main(String args[]) { subclass sub = new subclass(); superclass sup = (superclass) sub; subclass theSub = (subclass) sup; theSub.displaySub(); }}
您可以通过执行以下 *** 作来完全解决该问题:
public class superclass{ public void display() } System.out.println("Display Superclass"); }}public class subclass extends superclass{ public void display() { System.out.println("Display Subclass"); }}public class Testing{ public static void main(String args[]) { subclass sub = new subclass(); superclass sup = (superclass) sub; sup.display(); }}
查看本教程以获取更多信息:覆盖
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)