【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修飾的方法,繼承一個類必須重寫全部抽象方法編譯

相關文章
相關標籤/搜索