抽象類和介面的特點及各自優勢

2021-07-11 13:14:55 字數 650 閱讀 2599

抽象類

特點:①抽象類不能被例項化,但可以建立乙個抽象型別的引用變數引用非抽象型別子類的的乙個例項②抽象類可以沒有抽象方法③有抽象方法的類一定是抽象類④抽象方法沒有方法體⑤構造方法不能是抽象方法⑥abstract和static及final不能共存⑦子類繼承抽象類需要實現抽象方法或也定義為抽象類

優勢:①抽象類可以為部分方法提供預設的實現從而避免子類中重複**,向抽象類中加入非抽象方法不會影響子類

劣勢:只能單繼承

介面特點:①介面不能例項化並且也不可以有構造方法但可以使用乙個介面引用介面實現類的例項②介面中的方法都是抽象方法,不能有方法體

,從jdk8開始,為了提高**的可重用性允許在介面中定義預設方法和靜態方法。

③乙個類可以實現多個介面,解決了單繼承的缺陷④介面中可以有變數,必須顯式的初始化因為變數預設都是public static final修飾的,使用介面名.變數名訪問⑤介面不能實現介面但可以繼承別的介面⑥實現介面的類需要實現抽象方法或定義為抽象類

優勢:①乙個類可以實現多個介面,在已有系統上進行自上而下的抽象比較方便,因為對於任意兩個類介面並不強迫他的實現類在語義上是同一種型別更有利於軟體系統的維護與重構②對於不同的兩個系統通過接**互能獲得更好的松耦合

劣勢:介面只能包含抽象方法,一旦被公布必須非常穩定,隨意向介面中加入抽象方法會影響所有實現類

抽象類和介面的區別及使用

1.介面的關鍵字為inte ce 2.介面中只能宣告方法和設定常量,變數預設為public static final型別,方法預設為public型別 3.乙個類可以實現多個介面 4.乙個類實現介面,必須要實現介面的所有的方法 定義乙個介面 inte ce manth 1.抽象類必須用 abstrac...

抽象類和介面的區別

要結合來使用,從而互補長短。接下來先說說抽象類和介面的區別。區別一,兩者表達的概念不一樣。抽象類是一類事物的高度聚合,那麼對於繼承抽象類的子類來說,對於抽象類來說,屬於 是 的關係 而介面是定義行為規範,因此對於實現介面的子類來說,相對於介面來說,是 行為需要按照介面來完成 這些聽起來有些虛,舉個例...

抽象類和介面的比較

1.抽象類 是一種特殊的類,具有以下特點 a 抽象方法只作宣告,而不包括實現,可以是看成沒有實現體的虛方法。b 抽象類不能被例項化,除此之外,具有類的其他特性。c 抽象類可以但不是不惜具有抽象方法和抽象方法,但是一旦有了抽象方法,就一定要把這個類宣告為抽象類。d 具體派生類必須覆蓋抽象類的抽象方法。...