但是,如何同时从 Object 和任何其他类继承?这不是多重继承吗?
不,这不是发生的事情。并非所有类都直接从类扩展Object
。但只有继承层次结构顶层的类从Object
类(隐式)扩展。层次结构中较低的其余类从Object
该类扩展到超类。而且,这就是我们所说的多级继承。
因此,请考虑以下层次结构:-
class A { }
class B extends A { }
在上述情况下,class A
等价于class A extends Object
。
其次,我们为什么需要继承所有 11 个 Object 方法?我几乎无法想象为什么我在 I/O 中需要它们
我怀疑您说的意思是override继承。您不需要覆盖任何Object
类的方法。是否覆盖任何方法都取决于您的要求。例如: - 您经常想要覆盖equals()
方法,以便为您的实例编写自定义相等测试。在这种情况下,您还应该重写该hashCode()
方法,以维护equals()
and的合同hashCode()
。
最后,JDK 8 将为我们提供接口中的默认方法实现,如果这可能会导致 Java 中的多重继承。
如果接口 A 提供具有默认实现的方法 a() 并且接口 B 还提供具有另一个默认实现的 a() 方法,而我们的自定义类 C 实现了这两个接口并依赖于默认实现——那不就是 Diamond of Death 吗?
我无法评论这个概念,因为我还没有读到这件事。可能,我稍后会更新答案。