【发布时间】:2011-11-06 18:16:26
【问题描述】:
几天前我正在向一位朋友解释概念或继承和容器。
他的编程知识很少,所以这实际上只是一次友好的聊天。 在谈话中,他带着一个我无法回答的问题来找我。
“为什么你不能只拥有一个顶级类的数组,然后向其中添加任何东西”
我知道这是一个坏主意,之前被比我聪明得多的人这么说,但我这辈子都不记得为什么了。
我的意思是我们一直在用继承来做这件事。
假设我们有一个类动物,它是猫和狗的父母。如果我们需要这两者的容器,我们创建一个动物类型的数组。
假设我们没有那个继承链接,我们不能只使用基对象类并将所有东西都放在一个容器中。
没有特定的编程语言。
【问题讨论】:
-
对于给定的语言/问题,它不一定是“坏的”(假设像 Java 这样的语言),但可能有更好的方法——“更好”通常意味着更好的类型.正如所指出的,
AnimalInterface[]或Animal[]可能会更好——但这只有在可以统一Object之前的类型时才有效。
标签: arrays class inheritance object containers