我知道为什么人们不应该这样做。但有没有办法向外行解释为什么这是不可能的。您可以轻松地向外行人解释这一点:Animal animal = new Dog();
。狗是一种动物,但狗的列表并不是动物的列表。
假设您创建了一个列表Dogs。然后您将其声明为列表并将其交给同事。他,并非没有道理,相信他可以把Cat in it.
然后他把它还给你,你现在就有了一份清单Dogs,有一个Cat在它的中间。混乱随之而来。
值得注意的是,由于列表的可变性,存在此限制。在 Scala 中(例如),您可以声明一个列表Dogs是一个列表Animals。这是因为 Scala 列表(默认情况下)是不可变的,因此添加Cat到一个列表Dogs会给你一个new列表Animals.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)