Java接口和抽象类有什么区别

9次阅读

共计 360 个字符,预计需要花费 1 分钟才能阅读完成。

从方法上而言

接口中的方法默认都是 public 或者是 default
使用 public 修饰的方法不允许存在方法体,使用 default 的方法不允许不存在方法体
使用 default 的方法在实现类中可以不被 Override
default关键字存在于 jdk1.8 之后,然而却存在下面一个情况

default void print() {System.out.println("Hello");
}

在编译后会变成

public void print() {System.out.println("Hello");
}

从属性上而言

接口中的属性默认都是 static final 修饰的
抽象类中的属性与普通类中的无异

从父子关系上而言

类可以实现多个接口,而类只能继承一个类

从使用上而言

实现一个接口就必须实现所有非 default 修饰的方法,继承一个类必须重写所有抽象方法

正文完
 0