gab*_*los 0 java inheritance class multiple-inheritance
据说,Java语言只支持单继承.但是如何同时从Object和任何其他类继承?这不是一个多重继承.
其次,我们需要继承所有11个Object方法?我很难想象为什么我在I/O中需要它们,例如
最后,JDK 8将为我们提供接口中的默认方法实现,以及是否可能导致Java中的多重继承.
如果接口A提供方法a()具有默认实现并且接口B也提供带有另一个默认实现的a()方法并且我们的自定义类C实现两个接口并依赖于默认实现 - 那不是Diamond of Death吗?
但是如何同时从Object和任何其他类继承?这不是一个多重继承.
不,这不是发生的事情.并非所有类都直接从Object类扩展.但只有顶级继承层次结构中的类才能从Object类(隐式)扩展.层次结构中较低的其余类从Object类扩展到超类.而且,这就是我们所说的多级继承.
因此,请考虑以下层次结构: -
class A { }
class B extends A { }
Run Code Online (Sandbox Code Playgroud)
在上述情况下,class A相当于class A extends Object.
其次,我们需要继承所有11个Object方法?我很难想象为什么我在I/O中需要它们
当你说继承时,我怀疑你的意思是覆盖.您不需要覆盖任何类的方法.只是根据您的要求,是否覆盖任何方法.例如: - 您经常要覆盖方法,以便为您的实例编写自定义相等性测试.而在这种情况下,你也应该重写方法,以维持合同和.Objectequals()hashCode()equals()hashCode()
最后,JDK 8将为我们提供接口中的默认方法实现,以及是否可能导致Java中的多重继承.
如果接口A提供方法a()具有默认实现并且接口B也提供带有另一个默认实现的a()方法并且我们的自定义类C实现两个接口并依赖于默认实现 - 那不是Diamond of Death吗?
我不能评论这个概念,因为我还没有读过这个东西.可能,我会在稍后更新答案.
| 归档时间: |
|
| 查看次数: |
1008 次 |
| 最近记录: |