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

从方法上而言

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

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

在编译后会变成code

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

从属性上而言

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

从父子关系上而言

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

从使用上而言

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

相关文章
相关标签/搜索