在接口中添加默认方法后,抽象类和接口有什么区别?
答案 0 :(得分:1)
这些差异很大,不是IMO的多重继承。
答案 1 :(得分:0)
Java 8中抽象类和接口之间的主要区别在于,抽象类是一个类,而接口是一个接口。
类可以具有可以通过非抽象方法修改的状态,但是接口不能具有该状态,因为它们不能具有实例变量。
第二个区别是,即使在Java 8中,接口也不能具有构造函数,但是您可能还记得抽象类在Java中始终具有构造函数。
实际上,引入了默认方法或防御者方法来保持向后兼容性,同时使Collection API更适合在lambda表达式之类的Java 8重要功能中使用。
如果不添加默认方法,就无法在Java中的现有接口上声明任何新方法而不破坏实现该方法的所有类,但是由于有了默认方法,您现在可以更好地开发API。
它们为防止执行新方法而保护您的代码,因此它们也称为防御者方法。