抽象和介面的區別(根據知乎大佬的討論整理)

2021-08-17 06:57:03 字數 548 閱讀 3041

1、抽象類和介面都不能直接例項化。如果要例項化,涉及到多型。抽象類要例項化,抽象類定義的變數必須指向乙個子類變數,這個子類繼承並實現了抽象類所有的抽象方法。介面要例項化,介面定義的變數必須指向乙個子類變數,這個子類繼承並實現了介面所有的方法。

2、抽象要被子類繼承,介面要被子類實現。

3、介面裡只能對方法進行宣告,抽象類裡既可以對方法進行宣告,又可以實現。

4、抽象類裡面的抽象方法必須被子類實現,如果子類不能全部實現,子類必須也是抽象類。介面裡面的方法必須被子類實現,如果子類不能全部實現,子類必須是抽象類。

5、介面裡面的方法不能有具體的實現,這說明介面是設計的結果,而抽象類是重構的結果。

6、抽象類裡面可以沒有抽象方法,如果乙個類裡面有抽象方法,那麼這個類一定是抽象類。

7、抽象類中的抽象方法都要被實現,所以抽象方法不能是靜態的static,也不能是私有的private。

8、介面可以繼承介面,甚至可以繼承多個介面;類可以實現多個介面,只能繼承乙個類。

9、抽象類主要用來抽象類別,介面主要用來抽象方法功能。關注事物的本質,用抽象類;關注一種操作,用介面。

抽象和介面的區別

1.抽象類可以有構造方法,介面中不能有構造方法。2.抽象類中可以有普通成員變數,介面中沒有普通成員變數 3.抽象類中可以包含非抽象的普通方法,介面中的所有方法必須都是抽象的,不能有非抽象的普通方法。4.抽象類中的抽象方法的訪問型別可以是public,protected和 預設型別,雖然 eclips...

抽象和介面的區別

介面和抽象類有什麼區別 你選擇使用介面和抽象類的依據是什麼?介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是,這個物件是什麼。介面表示的是,這個物件能做什麼。比如,男人,女人,這兩個類 如果是類的話 他們的抽象類是人。說明,他們都是人。人可以吃東西,狗也可以吃東西,...

抽象方法和介面的區別

1 抽象方法和介面都不能被例項化,但可以定義抽象類和介面型別的引用 如 addservice service new addserviceimpl 2 乙個類整合了抽象類需要實現其中的抽象方法,否則該類還是需要被宣告為抽象類,而乙個類實現了介面,必須實現所有方法 3 介面比抽象類更抽象,抽象類可以定...