首页 文章

什么构成间接继承?

提问于
浏览
2

当我们说“所有类直接或间接地从类 Object 继承”时,我们的意思是什么?什么构成一个类间接继承其间接超类中声明的方法?

我们可以说一个类间接地继承了在其中一个间接超类中声明的方法,而不管超级类中定义的方法在继承层次结构中向下传播时可能被覆盖的事实,因此上面的注释是基于这样的事实子类继承了一些方法,其签名与超类中声明的签名相同 .

或者,我们是否只能说类间接继承在其中一个间接超类中声明的方法当且仅当该类继承了在其间接超类中声明的方法时,即该方法在继承传播时未被覆盖层次结构,并且该类继承该方法的方法与在其间接超类中定义的方法相同 .

3 回答

  • 10

    有关间接继承课程的问题已经得到解答 . 所以我添加方法 .

    我认为这里重要的是类接口(可用方法的签名,而不是接口的java机制)和类行为之间的区别 - 可用方法的实现 . 在你关于方法的问题中,你可以说类间接地继承了方法,无论它们是否被中间类覆盖,并且没有任何其他细节,这意味着继承接口 . 要将短语的上下文设置为行为,意味着必须明确声明方法X的实现取自类Y.

  • 1

    当您多次使用 "is-a" 来描述他们的关系时, Class1 间接继承了 Class2 (请记住 "is-a" 关系是可传递的) .

    示例:a red-apple is -a apple is -a fruit is -a consumable . 在此示例中, red-apple 间接继承自 fruitconsumable . red-apple 直接继承自 apple (仅使用了一个 is-a 过渡)

  • 1

    通过间接继承,它们意味着您扩展另一个本身扩展Object的类 . 直接继承自Object意味着你要么在类签名上明确声明了 extends Object ,要么你没有定义它应该扩展的另一个类(在这种情况下,无论如何它都会直接扩展 Object . )

    就特定方法而言,您只继承层次结构中的"last overriden" . 因此,如果我继承自继承 toString() 的类,我将只继承覆盖版本,而不是 Object 中的原始版本 .

相关问题