Java8何时使用接口默认方法与抽象方法

一、概述

Java 8允许在称为Default Methods的接口中默认实现方法。

我什么时候应该使用那种interface default method而不是abstract class(with abstract method(s)感到困惑

那么什么时候应该使用默认方法接口,什么时候应该使用抽象类(带有抽象方法)?在这种情况下,抽象类仍然有用吗?

二、详解

除了默认方法实现(例如私有状态)之外,抽象类还有很多,但是从Java 8开始,无论选择哪种方法,都应该default在接口中使用Defender(aka。)方法。

对默认方法的限制是,只能在对其他接口方法的调用方面实现默认方法,而无需参考特定实现的状态。因此,主要用例是更高级别的便捷方法。

这项新功能的好处在于,在您不得不为便利方法使用抽象类,从而将实现者限制为单一继承之前,现在您可以拥有仅接口和最少实现量的真正干净的设计程序员的努力。

default向Java 8中引入方法的最初动机是希望在不破坏任何现有实现的情况下使用面向lambda的方法来扩展Collections Framework接口。尽管这与公共图书馆的作者更为相关,但是您可能会发现相同的功能在您的项目中也很有用。您可以在一个集中的地方添加新的便利,而不必依赖其他类型层次结构的外观。

 

如若转载,请注明出处:https://www.javaidea.cn/article/8385.html

(0)
上一篇 2022年2月7日 上午10:03
下一篇 2022年2月7日 上午10:03

相关推荐

发表评论

您的电子邮箱地址不会被公开。