java 8中的接口和抽象有啥区别? [复制]

Posted

技术标签:

【中文标题】java 8中的接口和抽象有啥区别? [复制]【英文标题】:What is difference between interface and abstraction in java 8? [duplicate]java 8中的接口和抽象有什么区别? [复制] 【发布时间】:2019-03-02 22:54:25 【问题描述】:

现在接口也有一些方法体作为抽象类有,那么java 8中的抽象和接口有什么区别。

【问题讨论】:

javaworld.com/article/2139921/learn-java/… 你可以实现很多接口,但是你只能扩展一个类。接口中的默认方法被锁定。如果您没有定义该方法,您将被锁定为默认实现。使用抽象类,您可以定义自己的实现,也可以使用 super.myMethod() 委托回超类以捕获常见行为。 【参考方案1】:

方法类型:接口只能有抽象方法。抽象类可以有抽象方法和非抽象方法。从 Java 8 开始,它还可以有默认和静态方法。

最终变量:Java 接口中声明的变量默认为最终变量。抽象类可能包含非最终变量。

变量类型:抽象类可以有final、non-final、static和non-static变量。接口只有静态和最终变量。

多种实现:一个接口只能扩展另一个Java接口,一个抽象类可以扩展另一个Java类并实现多个Java接口。

数据成员的可访问性:Java 接口的成员默认是公共的。 Java 抽象类可以具有私有、受保护等类成员。

【讨论】:

以上是关于java 8中的接口和抽象有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

php中的抽象和接口有啥区别? [复制]

抽象类和接口有啥区别? [复制]

接口和抽象类有啥区别? [复制]

java接口和类有啥区别?

java中接口和类有啥区别 java中接口和类有啥区别

java中接口和类有啥区别java中接口和类有啥区别