介面與抽象類的區別與聯絡 2023年12月13日

2022-08-16 19:27:17 字數 1090 閱讀 9681

1、如果要建立不帶任何方法和成員變數的基類,應該選擇介面而不是抽象類。

2、介面可以實現多繼承。

3、介面和抽象類的區別與聯絡:

1)介面和抽象類都不能例項化,若要被例項化,要有子類繼承抽象類且實現抽象類中的所有方法,再利用多型——父類引用指向子類物件實現例項化;介面變數必須指向實現介面所有方法的類物件。

2)抽象類中定義的方法不一定是抽象方法,但是介面中定義的方法都是抽象方法。

3)抽象類可以被繼承extends,子類要實現抽象類中定義的所有方法,否則子類將無法被例項化,如果子類沒有實現全部父類抽象方法,那麼子類只能是抽象類;介面可以被實現implements,同樣介面中定義的方法也都要被實現,這就體現了專用介面優於單一介面,專用介面避免了所有方法在同一介面中,有些類不能實現。

4)抽象方法只能宣告,不能實現,但是抽象方法是要被子類實現的,派生類必須覆蓋基類中的抽象方法,因此抽象方法不能是靜態的,也不能是私有的。例如:

abstract

function fun1();

abstract function fun2();

5)介面裡定義的變數只能是公共的靜態的常量抽象類中的變數是普通變數

6)介面只能做方法宣告,抽象類中可以做方法宣告,也可以做方法實現。

7)當關注乙個事物本質的時候,用抽象類;當關注乙個操作的時候,用介面。例如:抽象類表示的是這個物件是什麼。介面表示的是這個物件能做什麼。比如,男人,女人,這兩個類,他們的抽象類是人。人可以吃東西,狗也可以吃東西,可以把「吃東西」定義成乙個介面,然後讓這些類去實現它。

8)介面可繼承介面,並可以多繼承介面,並且類可以實現多個介面,但類只能單根繼承。

4、介面的實現方法必須是public的原因:

首先,介面的預設方法都是public型別的,如果不是public型別的,那麼這個介面只能在同包的類中實現,其訪問許可權就降低了很多,而且實現類相當於子類,子類的訪問許可權不能小於父類,因此實現類的方法必須用public型別的。

介面與抽象類區別

介面是公開的,裡面不能有私有的方法或變數,是用於讓別人使用的,而抽象類是可以有私有方法或私有變數的,另外,實現介面的一定要實現介面裡定義的所有方法,而實現抽象類可以有選擇地重寫需要用到的方法,一般的應用裡,最頂級的是介面,然後是抽象類實現介面,最後才到具體類實現。還有,介面可以實現多重繼承,而乙個類...

介面與抽象類區別

1 從形態上 抽象類可以給出一些成員的實現,介面卻不包含成員的實現。抽象類的抽象成員可被子類部分實現,介面的成員需要實現類完全實現,乙個類只能繼承乙個抽象類,但可實現多個介面 2 類是對物件的抽象,抽象類是對類的抽象,介面是對行為的抽象。也就是說介面是對類的區域性 行為 進行的抽象,而抽象類是對整體...

介面 與 抽象類 區別

抽像類和介面 區別 首先抽象類 1.抽象類不能被例項化,但可以被申明 2.抽象類不一定包含抽像方法 3.一旦類包含了abstract 方法那麼這個類必須宣告 關鍵字 abstract 4.抽像放不放不能有主體就是方法體 5,但是抽象類可以擁有實現的方法 6.乙個類只能繼承乙個抽像類 其次 是介面,就...