Java 8 中抽象类和接口之间的主要区别在于抽象类是类而接口是接口。
一个类可以有一个可以被非抽象方法修改的状态,但一个接口不能有状态,因为它们不能有实例变量。
第二个区别是即使在 Java 8 中接口也不能有构造函数,但您可能还记得抽象类在 Java 中总是有构造函数。
实际上,引入了默认或防御者方法以保持向后兼容性,同时使 Collection API 更适合在关键 Java 8 功能(如 lambda 表达式)中使用。
如果不添加默认方法,就不可能在 Java 中的现有接口上声明任何新方法而不破坏实现它的所有类,但是由于默认方法,您现在可以更好地发展您的 API。
它们保护您的代码免受实现新方法的影响,因此它们也称为防御者方法。
| 归档时间: |
|
| 查看次数: |
1805 次 |
| 最近记录: |