【发布时间】:2015-08-02 15:40:49
【问题描述】:
一个子类也可以是 Java 中另一个子类的超类吗?也许这不是最好的例子,但请考虑以下类:
public class Animal { }
public class Dog extends Animal { }
public class Cat extends Animal { }
public class Siamese extends Cat { }
public class JackRussel extends Dog { }
继承允许这种行为吗?
鉴于 JackRussels 需要 Animal 和 Dog 的方法和属性,而 Siamese 需要 Animal 和 Cat 的方法和属性。
如果没有,我可以采取一种通用的方法来实现这种行为吗?
干杯
【问题讨论】:
-
这里的语言是Java。我认为这个问题与语言无关。我将在其中进行编辑。
-
是的,Java 允许这样做。你为什么不自己尝试一下?
-
是的,将
Mammal视为狗的超类,但将其视为Living的子类 -
你有代码,并且你想检查它是否有效......当然
javac是确定它而不是堆栈溢出的最佳方法。如果你不问它是否是有效的代码,你问的是什么是? -
@Mackiavelli Errrm ...“这就是 java 使用接口来模拟多重继承的原因”。拥有接口的主要目的不是模拟多重继承。拥有接口有几个目的,其中之一是让类履行角色或绑定到合同。也许你想表达接口是一种模拟多重继承的方式,但这不是它们存在的原因。
标签: java oop inheritance subclass superclass