【发布时间】:2012-01-23 16:38:53
【问题描述】:
如果Puppy 类默认继承Object,如果我希望我的Puppy 类扩展超类Dog,Puppy 是否仍然始终扩展Object?
对此我不太确定,但我认为 Puppy 仍然会一直扩展 Object,因为 Eclipse 为我提供了 Object 类的方法。
【问题讨论】:
标签: java inheritance object subclass superclass
如果Puppy 类默认继承Object,如果我希望我的Puppy 类扩展超类Dog,Puppy 是否仍然始终扩展Object?
对此我不太确定,但我认为 Puppy 仍然会一直扩展 Object,因为 Eclipse 为我提供了 Object 类的方法。
【问题讨论】:
标签: java inheritance object subclass superclass
考虑继承层次。
如果您向上层级,则默认情况下,层级中最顶层的类 (Dog) 会扩展 Object。
并且子类总是继承它的超类的所有可继承成员,即使它们又被超类从它自己的其他超类继承。
因此,即使Puppy 没有直接扩展Object,它也会通过该层次结构继承Object 的成员。
【讨论】:
是的,确实如此。
【讨论】:
Puppy extends Dog 和 Dog extends Object 这样您就可以在Object 中获得所有methods 来自Object。
【讨论】:
假设Dog 也扩展了默认类(即Object),那么Puppy 扩展了Dog 将是真的Dog 扩展了Object。
这意味着Puppy 扩展了Object。
【讨论】:
不,Puppy 扩展了 Dog,而 Dog 扩展了 Object。
【讨论】:
Puppy 将继承 Dog,Dog 将继承 Object。你的问题的答案是肯定的。 所有 类在其类层次结构中的某个点继承 Object。这就是为什么您的全新 NewClass 将具有 toString()、hashCode() 和您在 Object 中找到的其他函数的原因。
【讨论】: