Real world examples when to use Abstract class and when to use Java 8 introduced interface(default and static methods)
本问题已经有最佳答案,请猛点这里访问。
在Java 8之前,我知道何时使用抽象类和接口,但是在Java 8引入默认值之后,可以在接口中提供静态方法。一个接口和一个抽象类几乎是相似的,只是你可以在抽象类中创建构造函数,而你不能在接口中这样做。除此之外,我想知道什么时候使用抽象类以及何时在现实世界的例子中使用Java 8接口。
通过在接口中引入默认方法,Java 5月8日在某些情况下消除了引入中间抽象/基类的必要性,该中介/抽象类实现了与任何子类的默认行为的接口。有时,抽象/基类仍然是由于其他原因(遗留的,需要包含字段等等,因为…)而必需的,但是它的子类仍然可以从默认实现中受益,而不需要定义它。
因此,在基类中Java 8之前定义的默认实现可以直接在接口中定义为默认方法。
在
如果在Java中需要多继承,则必须使用接口而不是抽象类。