当前位置: 首页 > 知识库问答 >
问题:

Java 9接口vs类

郎星汉
2023-03-14

由于Java9将允许我们在接口中也定义privateprivatestatic方法,那么interfaceclass中剩下的区别是什么呢?而且,Java走向多重继承的步伐是不是很慢?

共有1个答案

印劲
2023-03-14

Java9中的私有接口方法的行为与其他私有方法完全相同:它们必须有一个主体(即使在抽象类中也是如此),并且既不能被子类调用也不能被子类重写。因此,它们并不真正与继承交互。谈到哪些(特别是多重继承),(至少?)三种IT:

  • 类型继承意味着一个类型可以是另一个类型,例如字符串对象。Java允许从第一天起(通过接口)对类型进行多重继承。
  • 行为的继承意味着一个类型可以继承另一个类型的行为。在Java8之前,只有类可以实现方法,因此只有这种类型的单一继承。Java8提供了默认方法,允许接口实现方法,从而为Java提供行为的多重继承。
  • 状态继承意味着一个类型继承另一个类型的内部状态(即字段)。按照目前的情况(Java9和当前为未来Java版本提出的所有内容),只有类可以具有状态,因此只有一个此类继承。

正如您所看到的,私有接口方法在这里没有添加任何内容。

 类似资料:
  • 问题内容: 我在该站点上阅读了很多有关常量用法的文章。 问题:什么时候应该使用Enums作为常量,而不是使用类或接口。 我看到了两个我要解决的关键情况。 1.多个项目在应用程序中使用的全局常数。 例: 常用日志字符串 容器引用,例如WebSphere EAR的数据库映射引用 2.对象特定常量 例: 员工对象的员工工资率 从我阅读的所有内容中,我认为我已经掌握了这些内容,并且正在寻找自己的看法。 对

  • 在java 8之前,接口可以有以下类型的变量/方法。 常量变量 抽象方法 所以我们不能在接口中编写方法的实现,或者更确切地说,在Java 8之前实现默认实现。请参阅下面示例。 执行上面示例代码,得到以下结果 - 在上面的例子中,每个日志方法都有自己的实现。 使用Java 8接口可以有以下类型的变量/方法。 常量变量 抽象方法 默认方法 静态方法 让我们使用Java 8在接口中使用默认实现和静态方法

  • 我正在重构我的代码,所以我需要做出关于接口或抽象类的决定。我有基类Player和继承基类的类,称为VideoPlayer、MusicPlayer等。基类有抽象方法,没有实现(Play)。那么,最好的方法是什么?将Play放在接口中或将其留在抽象类中。在MusicPlayer中播放与在VideoPlayer中的播放器不同。我是用C#实现的。

  • 我已经研究了接口、抽象类和继承的用法。我知道每一种都有其用途,但我还是有点困惑。 我知道一般一个类只能扩展另一个类,虽然有些可能支持多个继承,但它可以实现多个接口(这可能是使用接口的主要原因)。然而,如果我是正确的,这个类也可以被另一个类扩展。我还看到抽象类可能比接口更快,并且可以有非静态的最终变量。 所以,我仍然不确定什么时候使用哪个更好。也许通过举例可以更好地理解这一点。我不反对使用任何东西,

  • 我无法确定您何时(如果有的话)想要在typescript中为变量使用而不是。假设以下两种情况: 我可以用两个变量定义一个完全相同的was

  • 和包中的和函数接口分别具有以下签名- 是否有一些特定的用例,其中每一个都比另一个更适合?