介面和抽象類的異同

2021-10-10 06:47:24 字數 648 閱讀 1732

1.抽象類和介面都不能被例項化。

2.介面的實現類必須實現了介面中的方法、抽象類的子類必須全部實現抽象方法,才能被例項化。

1.從設計理念的角度

介面的概念更像是說我有這個功能(has-a)、抽象類的概念更像我的方法是什麼(is-a)

2.從運用關係的角度

介面的運用方便方法的新增刪除;

抽象類相當於乙個公共方法,不適合對裡面的方法進行修改;

介面是一種特殊形式的抽象類,適用於與多種不同的物件之間的互動(想想mysql、oracle與jdbc,蘋果安卓與usb);

抽象類適用於存在子父類上的層次邏輯關係;

3.從繼承實現關係的角度

介面要實現、抽象類要繼承,乙個類可以實現多個介面,乙個類只能繼承乙個抽象類;

介面中的方法只有定義,沒有具體的實現,實現由介面的實現類來完成;抽象類中即可以定義也可以由具體方法實現;

4.從成員變數和成員方法角度

介面中可以定義成員變數,但必須是靜態變數public、final、static,且要賦初始值,方法必須只能是public、abstract;

抽象類可以定義自己的成員變數,也可以有成員方法。抽象方法需要abstract修飾,不能用private、static、synchronize、native修飾(因為是是公共的、這些詞不太公共)

抽象類和介面異同

抽象類 定義 抽象類往往用來表徵對問題領域進行分析 設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。用 abstract 修飾的類是抽象類,抽象類是不完整的,它只能用作基類。在物件導向方法中,抽象類主要用來進行型別隱藏和充當全域性變數的角色。特徵 抽象類不能例項化。不能用...

抽象類和介面異同

本文總結了在 c 當中,介面與抽象類的一些異同,來與大家共享。1 抽象方法只作宣告,而不包含實現,可以看成是沒有實現體的虛方法 2 抽象類不能被例項化 3 抽象類可以但不是必須有抽象屬性和抽象方法,但是一旦有了抽象方法,就一定要把這個類宣告為抽象類 4 具體派生類必須覆蓋基類的抽象方法 5 抽象派生...

介面和抽象類的異同

相同點 抽象類和介面均包含抽象方法,類必須實現所有的抽象方法,否則是抽象類 抽象類和介面都不能例項化,他們位於繼承樹的頂端,用來被其他類繼承和實現 兩者的區別主要體現在兩方面 語法方面和設計理念方面 語法方面的區別是比較低層次的,非本質的,主要表現在 介面中只能定義全域性靜態常量,不能定義變數。抽象...