【问题标题】:A class extends a superclass called Object一个类扩展了一个名为 Object 的超类
【发布时间】:2012-01-23 16:38:53
【问题描述】:

如果Puppy 类默认继承Object,如果我希望我的Puppy 类扩展超类DogPuppy 是否仍然始终扩展Object

对此我不太确定,但我认为 Puppy 仍然会一直扩展 Object,因为 Eclipse 为我提供了 Object 类的方法。

【问题讨论】:

    标签: java inheritance object subclass superclass


    【解决方案1】:

    考虑继承层次

    如果您向上层级,则默认情况下,层级中最顶层的类 (Dog) 会扩展 Object

    并且子类总是继承它的超类的所有可继承成员,即使它们又被超类从它自己的其他超类继承。

    因此,即使Puppy 没有直接扩展Object,它也会通过该层次结构继承Object 的成员。

    【讨论】:

      【解决方案2】:

      是的,确实如此。

      【讨论】:

        【解决方案3】:

        Puppy extends DogDog extends Object 这样您就可以在Object 中获得所有methods 来自Object

        【讨论】:

          【解决方案4】:

          假设Dog 也扩展了默认类(即Object),那么Puppy 扩展了Dog 将是真的Dog 扩展了Object

          这意味着Puppy 扩展了Object

          【讨论】:

            【解决方案5】:

            不,Puppy 扩展了 Dog,而 Dog 扩展了 Object。

            【讨论】:

            • 谢谢大家的澄清!
            【解决方案6】:

            Puppy 将继承 Dog,Dog 将继承 Object。你的问题的答案是肯定的。 所有 类在其类层次结构中的某个点继承 Object。这就是为什么您的全新 NewClass 将具有 toString()hashCode() 和您在 Object 中找到的其他函数的原因。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-10-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-03-20
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多