JAVA 接口和抽象類的區別

抽象類總結

抽象類不能被實例化(初學者很容易犯的錯),如果被實例化,就會報錯,編譯無法通過。只有抽象類的非抽象子類可以創建對象。

抽象類中不一定包含抽象方法,但是有抽象方法的類必定是抽象類。

抽象類中的抽象方法只是聲明,不包含方法體,就是不給出方法的具體實現也就是方法的具體功能。

構造方法,類方法(用 static 修飾的方法)不能聲明為抽象方法。

抽象類的子類必須給出抽象類中的抽象方法的具體實現,除非該子類也是抽象類。

JAVA 接口和抽象類的區別

本質:從設計層面來說,抽象是對類的抽象,是一種模板設計,接口是行為的抽象,是一種行為的規範

區別:

1.接口的方法默認是public,所有方法在接口中不能有實現,抽象類可以有非抽象的方法

2.接口中的實例變量默認是final類型的,而抽象類中則不一定

3.一個類可以實現多個接口,但最多隻能實現一個抽象類

4.一個類實現接口的話要實現接口的所有方法,而抽象類不一定

5.接口不能用new實例化,但可以聲明,但是必須引用一個實現該接口的對象



分享到:


相關文章: