從方法上而言
接口中的方法默認都是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修飾的方法,繼承一個類必須重寫所有抽象方法