gpt4 book ai didi

java - 设计类层次结构——Java中的多重继承

转载 作者:搜寻专家 更新时间:2023-11-01 04:06:35 25 4
gpt4 key购买 nike

我知道 Java 不支持多重继承。但是如果我必须为动物王国设计一个类系统。如何表示两种不同动物的杂交动物?例如,骡子(驴或马?),狮虎(狮子或老虎)。如何同时继承 Lion 和 Tiger 类来创建 Liger 类?有没有办法不用把 Tiger 和 Lion 作为接口(interface)呢?如果不能做接口(interface)怎么办?

最佳答案

在这种情况下,继承不是使用的正确工具。你看,狮虎不是老虎,也不是狮子。它具有两者的特征,但两者都不是。

假设您去动物园,笼子上写着“老虎”。你偷看一眼,看到这只你肯定不认为是老虎的怪异巨猫。 It's cool ,但不是老虎。你也不认为它是狮子。这不是 substitutable对于任何一个。

因此,它应该组成 LionTiger 并将其行为委托(delegate)给正确的人,或完全或部分“覆盖”他们的行为。

更新:

现在,如果您真的想要某种多重继承该怎么办,例如,如果您想从 HybridFeline 派生出 Liger ?看看Scala traits为了一种可能性。要在 Java 中实现它,您需要为设计中要“继承”的每个概念提供一个接口(interface)和一个类。看看here为了这个想法。

关于java - 设计类层次结构——Java中的多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9041710/

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