接口中添加了默认方法,抽象类和接口有什么区别?
Java 8 中抽象类和接口之间的主要区别在于抽象类是类而接口是接口。
一个类可以有一个可以被非抽象方法修改的状态,但一个接口不能有状态,因为它们不能有实例变量。
第二个区别是即使在 Java 8 中接口也不能有构造函数,但你可能记得抽象类在 Java 中总是有构造函数。
实际上,引入了默认或防御者方法以保持向后兼容性,同时使 Collection API 更适合在关键 Java 8 功能(如 lambda 表达式)中使用。
如果不添加默认方法,就不可能在 Java 现有接口上声明任何新方法而不破坏实现它的所有类,但是由于默认方法,您现在可以更好地发展您的 API。
它们保护您的代码免受实现新方法的影响,因此它们也称为防御者方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句