在Java接口引入了默认方法之后,似乎接口和抽象类之间不再有任何区别。但事实并非如此——它们之间存在一些根本性的差异。
在本教程中,我们将深入探讨接口和抽象类,看看它们是如何不同的。
为什么使用默认方法?
默认方法的目的是在不破坏现有实现的情况下提供外部功能。引入默认方法最初的动机是为集合框架提供与新lambda函数向后兼容的功能。
让我们看看主要的基本差异。
3.1. 状态
抽象类可以有状态,其方法可以访问实现的状态。尽管接口中允许使用默认方法,但它们不能访问实现的状态。
大约 4 分钟
在Java接口引入了默认方法之后,似乎接口和抽象类之间不再有任何区别。但事实并非如此——它们之间存在一些根本性的差异。
在本教程中,我们将深入探讨接口和抽象类,看看它们是如何不同的。
默认方法的目的是在不破坏现有实现的情况下提供外部功能。引入默认方法最初的动机是为集合框架提供与新lambda函数向后兼容的功能。
让我们看看主要的基本差异。
抽象类可以有状态,其方法可以访问实现的状态。尽管接口中允许使用默认方法,但它们不能访问实现的状态。