Java 9接口与类

Aak*_*ash 41 java java-9

从Java 9会允许我们定义privateprivate static方法太接口,这将是在剩下的差异interfaceclass?而且,Java是否正在慢慢走向多重继承?

Nic*_*lai 44

Java 9中的私有接口方法与其他私有方法的行为完全相同:它们必须具有主体(即使在抽象类中),并且既不能被子类调用也不能被子类覆盖.因此,它们并不真正与继承相互作用.谈论哪个(特别是多重继承),有(至少?)三种:

  • 类型的继承意味着一种类型可以另一种类型,例如String Object.Java允许从第一天开始多次继承类型(通过接口).
  • 行为的继承意味着一种类型可以继承另一种类型的行为.在Java 8之前,只有类可以实现方法,所以只有这种类型的单继承.Java 8提供了默认方法,它允许接口实现方法,从而为Java提供多重行为继承.
  • 状态的继承意味着类型继承了另一个类型的内部状态(即字段).就目前而言(Java 9和目前为未来Java版本提出的所有内容),只有类可以具有状态,因此只有这种类型的单继承.

正如您所看到的,私有接口方法不会在此处添加任何内容.

关于接口和类如何比较的问题,有两个主要区别:多重继承和状态.接口支持前者,类可以拥有后者.由于国家在典型的OOP中很重要,因此课程仍然具有相关性.

如果某个接口有一种方法可以强制某个实现具有特定的非公共字段或直接定义一个本地,那么游戏就会发生变化,接口可能会与类竞争.


xia*_*.li 29

私有方法不由子类继承,因此此功能不会影响实现类.我相信接口中的私有方法允许我们在默认方法之间共享代码.

Java接口仍然不能拥有非静态成员.这是一个很大的区别,而不是多重继承IMO.


Zhe*_*lov 20

Java 9接口仍然不能包含字段和构造函数.这在类和接口之间产生了巨大的差异,因此Java 9远不是多重继承.