gpt4 book ai didi

java - 为什么我可以将一个类的对象添加到另一个类的 LinkedList 中?

转载 作者:行者123 更新时间:2023-11-30 09:00:15 25 4
gpt4 key购买 nike

我有这样一个类:

public class One {
private int idOne;
private String nameOne;
//Getter and Setter
}

还有另一个扩展 One 的类:

public class Two extends One {
private String moreThings;
private String example;
//Getter and Setter
}

然后有LinkedList<One> myList = new LinkedList<>();

我不明白为什么我可以添加Two如果我指定该列表将包含 One,则该列表的对象对象 LinkedList<One> .示例:

LinkedList<One> myList = new LinkedList<>();

Two t1 = new Two();
Two t2 = new Two();

myList.add(t1);
myList.add(t2);

这很酷,但我不知道为什么我可以这样做。

最佳答案

将您的问题视为一个真实世界的例子,让您有一个 Animal 类,具有 running()eating() 等方法, drinking() 等。现在你的类看起来像

class Animal
{
public void running()
{
//some code
}

public void eating()
{
//some code
}

public void drinking()
{
//some code
}
}

enter image description here


让你有另外两个类 DogCat,因为它们是动物类型,所以它们可以扩展 Animal 类。所以这样说是完全正确的

Animal animalObject=new Dog();  // a dog is a type of animal
or
Animal animalObject=new Cat(); //cat is a type of animal
or
Dog dogObject=new Dog(); //Nothing special
or
Cat catObject=new Cat(); //Nothing special

但是,以下是无效的

Dog dogObject=new Animal();
or
Cat catObject=new Animal();

因为(再次阅读该引用。)并且请给出 eye to this ..:)

关于java - 为什么我可以将一个类的对象添加到另一个类的 LinkedList 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26866089/

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