在我的代码中有两个类,子类扩展了超类.在子类中,我重写了超类方法.在创建对象的时候,我创建了对子类对象的超类引用,它的工作正常.但是我再次将超类引用转换为完整的超类对象,但它调用子类方法而不是超类方法.我的假设输出是错误的.这是我的代码
public class OverRiding {
public static void main(String[] args) {
// TODO Auto-generated method stub
//Super class reference to sub class Object
Dog dog = new Animal();
dog.eat();
dog.bow();
//Completely converted into pure Dog class Object
Dog d = (Dog) dog;
d.eat();
d.bow();
}
}
Run Code Online (Sandbox Code Playgroud)
狗班
class Dog {
public void eat() {
System.out.println("Dog eat Biscuits");
}
public void bow() {
System.out.println("Dog bow");
}
}
Run Code Online (Sandbox Code Playgroud)
类动物
class Animal extends Dog {
public void eat() {
System.out.println("Animal eat Food");
}
}
Run Code Online (Sandbox Code Playgroud)
我的输出是
Animal eat Food
Dog bow
Animal eat Food
Dog bow
Run Code Online (Sandbox Code Playgroud)
你的概念不正确兄弟......
class Animal extends Dog
Run Code Online (Sandbox Code Playgroud)
动物如何延长狗?.它就像是在说"每只动物都是狗".这是错的......所以,它应该是另一种方式......
这个例子只会让你更加困惑..
Donno为什么没有人提起这件事......
| 归档时间: |
|
| 查看次数: |
9000 次 |
| 最近记录: |