Does Java 8 support multiple inheritance?
在阅读Java 8中的界面时,我遇到了这个主题,在一些场景中,我们使用默认或静态关键字定义接口中的方法,允许下一个孩子重新定义相同的方法或实现它。这意味着多重继承吗?我发现还有一个问题是,返回类型必须是同变量类型,否则编译问题,这意味着它仍然不支持多重继承?我们能说Java支持多重继承吗?让我知道关于这个主题的更多细节。
- 我不认为其他问题真的回答了他的问题——因为这个问题根本不涉及Java 8和接口内的默认实现。
- 混淆在于继承这个词的用法,从技术上讲,继承只能用于扩展类,而不能用于接口。所以我们不能进行多重继承,但可以进行多重实现。我觉得进一步阅读这个主题会有更多帮助
- 是的,你说得对@J&228;格梅斯特
- 另一个问题是,我们正在处理接口中的静态方法来进行一个人造继承,我仍然会避免使用这个词,因为它会给表带来比它值更多的混乱。与其说它是继承,不如坚持使用更常见的术语,如重写。
Does that means multiple inheritance?
对于接口,是的,但不是类。人们通常认为只有类可以有字段和构造函数。这与Java 1没有什么不同。
return type must be co-variant type else compile issue, that means it still doesn't support multiple inheritance?
协变返回类型的需要与您是否具有多重继承无关。
Can we say that java supports multiple inheritance?
对于接口,是的。
- 如果我们编写了2个不同的接口,它们具有相同的默认方法,但返回类型不同,那么Java在实现类中预期返回类型是共变类型。没有共变类型,Java会引发编译器错误。但为了使它支持多重继承,返回类型可能不同。我们可以使用静态方法使Java支持多重继承。还有一个问题,我们实际上需要附加父接口来使用它的静态方法…
- @shaikhnizamuddin如果您有两个返回不兼容类型的方法,那么开发人员可能会混淆赋予这些方法相同的名称。我建议给出不同的名称,这样开发者就可以清楚地知道他们应该得到什么结果。
- 是的,对具有不同返回类型的方法使用不同的名称是很好的。也许在即将到来的Java版本(假设的假设,乐观)中,我们可以看到这种共变类型是非歧义的。:)
- @ SHIKHNIZAMUDIN类型推断在Java中是新的,但是它可以使用类型推断来确定应该调用哪种重载方法。注意:JVM包含方法签名中的返回类型,因此它支持具有不同返回类型的同名方法(并且Java 6编译器中有一个bug允许您使用它)。