如何在没有实现的情况下进行多重继承接口

时间:2017-05-18 07:06:25

标签: java c# inheritance

接口用于实现多个继承。但是接口没有任何实现。我们所做的就是继承方法的名称,并在我们喜欢的任何地方实现该方法,无论我们喜欢什么。

当我不得不一遍又一遍地实现逻辑而没有一些可以重复使用的常用功能时,这些多重继承是怎样的呢?

3 个答案:

答案 0 :(得分:2)

这里有两个方面:

  • 在Java8之前,Java接口不包含" implementation&#34 ;;因此使用接口导致"多重继承"。
  • Java8为接口引入了默认/静态方法;使得继承"继承"来自多个超类的行为。

但是:java8默认方法从不意味着添加"通用特征" Java的概念(就像你在Scala中所做的那样)。

含义:虽然Java8允许"多重继承"该功能不应该被视为这样。

除此之外:如果你认为继承是为了防止代码重复,那么你就是错误的兔子洞。是的,继承可以帮助那里。但主要A extends B的原因是因为您的域模型告诉您这样做。含义:您可以在它们之间创建类和关系,以构建对现实的有用抽象。能够帮助您解决功能问题的东西。

为了防止代码重复,您非常喜欢旧的FCoI原则!

答案 1 :(得分:2)

Java中没有多重继承来避免钻石问题(请阅读:http://www.journaldev.com/1775/multiple-inheritance-in-java)。

但是,接口可以从多个接口扩展。这很好,因为接口只声明方法,实际的实现将由实现接口的具体类完成。

答案 2 :(得分:0)

在Java中,接口是多重继承的替代。接口是实现抽象的机制。它只显示功能的高级细节,但不提供实现。

您可以在类中实现多个接口,在此类中实现一些常用功能,然后从中扩展其他类,以便您可以重用常用功能。这样就可以避免一次又一次地实现相同的方法。

相关问题