Java 8 及更高版本中的抽象类和接口之间有什么区别?

尼哈尔·卡维

接口中添加了默认方法,抽象类和接口有什么区别?

阿布舍克

Java 8 中抽象类和接口之间的主要区别在于抽象类是类而接口是接口。

一个类可以有一个可以被非抽象方法修改的状态,但一个接口不能有状态,因为它们不能有实例变量。

第二个区别是即使在 Java 8 中接口也不能有构造函数,但你可能记得抽象类在 Java 中总是有构造函数。

实际上,引入了默认或防御者方法以保持向后兼容性,同时使 Collection API 更适合在关键 Java 8 功能(如 lambda 表达式)中使用。

如果不添加默认方法,就不可能在 Java 现有接口上声明任何新方法而不破坏实现它的所有类,但是由于默认方法,您现在可以更好地发展您的 API。

它们保护您的代码免受实现新方法的影响,因此它们也称为防御者方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java 8中抽象类和接口之间有什么区别?

接口和Java 8中抽象类之间的根本区别

Java的8接口VS抽象类

Java 8 lambda和带有抽象类的接口扩展

Java 8中的map()和flatMap()方法之间有什么区别?

Java CPU和PSU版本之间有什么区别,例如JDK SE 8u101和JDK SE 8u102

从jdk-8开始的Java标准库中是否有使用抽象类与接口的示例?

Java 8 之后何时使用接口与抽象类

接口和抽象类之间有什么区别?

Java8容器`for`和Stream`for`之间有什么区别

Java 8中实例方法引用类型之间有什么区别?

java类文件版本之间有什么区别

C ++概念和Java接口之间有什么区别?

是Java 8中有任何用途的抽象类

是什么在Java中8流和类别之间的区别

在重新调整外观的Java SE 8文档中,具体方法和实例方法之间有什么区别?

C结构和Java类之间有什么区别?

Java的BufferedReader和InputStreamReader类之间有什么区别?

Swift 2.0协议扩展和Java / C#抽象类之间有区别吗?

Java中默认和生成的串行版本uid之间有什么区别?

动态调用-具有接口和抽象类的Java

Scala(和Java)中的类和类型之间有什么区别?

Java 8-使用默认方法与抽象类进行接口

Java中的类导入和包导入之间有什么区别?

Java API中的“ Class”类和“ class”关键字之间有什么区别?

Java-抽象类和接口

Java接口和抽象类问题

Java抽象类和接口

2个Java8下载之间有什么区别?