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中的接口和抽象有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章