【Java】接口和抽象類有什麼區別

從方法上而言

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章