java抽象类abstract和接口interface的区别

                                     抽象类                               接口

定义关键字                   abstract                         interface 

子类继承或实现关键字  extends                       implement

方法实现                     可以有                          不能有但是在jdk8以后可以有default实现

方法访问控制符          无限制                        有限制默认是 public abstract 类型

属性访问控制符        无限制                               有限制 默认是 public static final 类型

静态方法                 可以有                              不能有

static静态代码块   可以有                             不能有

本类型之间扩展      单继承                          多继承

 本类型之间扩展关键字 extends                   extends

抽象类在被继承之间体现的是is-a的关系,接口与被实现之间体现的是can-do的关系

抽象类是模板设计  而接口更像契约式设计

接口是顶级“类” 编译之后还是.class文件

接口某种意义上位于顶层,而抽象类更多对各个接口进行组合,然后实现部分接口行为

接口和抽象类选择犹豫时推荐定义接口,遵循接口隔离原则

猜你喜欢

转载自blog.csdn.net/m0_38105216/article/details/85067156