gpt4 book ai didi

java - java 中的多态性 : Why do we set parent reference to child object?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:52:37 25 4
gpt4 key购买 nike

我想了解将父引用设置为子对象的用例。示例:Dog 类扩展了 Animal 类。 (没有接口(interface),请注意)我通常会像这样创建一个 Dog 对象:

Dog obj = new Dog();

现在,由于 Dog 是 Animal 的子类,它已经可以访问 Animal 的所有方法和变量。那么,这有什么区别:

Animal obj = new Dog(); 

请提供一个正确的用例及其使用代码片段。请不要发表关于“多态性”或“接口(interface)编码”的理论文章!

代码:

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");
}
}

两种情况的输出相同。那为什么要给子对象设置父引用呢?

最佳答案

让我编码一些时间。

List<String> list = new ArrayList<String>;
list.doThis();
list.doThat();

哦等等..我疯了。我想使用 LinkedList 而不是 ArrayList

List<String> list = new LinkedList<String>;
list.doThis();
list.doThat();

是的,我只需要更改声明部分。无需触摸我的所有代码。感谢对接口(interface)和父类(super class)的编程。

关于java - java 中的多态性 : Why do we set parent reference to child object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32142128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com