我想了解为子对象设置父引用的用例。示例:狗类扩展了动物类。(没有接口,介意)我通常会这样创建一个Dog对象:
Dog obj = new Dog();
现在,由于Dog是Animal的子类,因此它已经可以访问Animal的所有方法和变量。然后,这有什么区别:
Animal obj = new Dog();
请提供适当的用例及其使用代码段。请不要提供有关“多态性”或“接口编码”的理论文章!
码:
public class Polymorphism {
public static void main(String[] args){
Animal obj1 = new Dog();
Dog obj2 = new Dog();
obj1.shout(); //output is bark..
obj2.shout(); //output is bark..
}
}
class Animal{
public void shout(){
System.out.println("Parent animal's shout");
}
}
class Dog extends Animal{
public void shout(){
System.out.println("bark..");
}
}
class Lion extends Animal{
public void shout(){
System.out.println("roar..");
}
}
class Horse extends Animal{
public void shout(){
System.out.println("neigh");
}
}
两种情况下的输出是相同的。那么为什么我们将父引用设置为子对象呢?