抽象類與介面的區別

2021-08-28 09:23:24 字數 415 閱讀 6672

這道題可以說是面試中的常客了,除當前這個問題外,還有可能會問這兩者應用場景的區別,這裡特此記錄一下。

抽象類為子類生成了乙個通用模板,當你希望子類中的方法有預設實現,便可以使用抽象類

而介面則是抽象方法的集合,如果乙個類實現了某個介面,就必須給出介面中的所有方法實現。

關於二者的不同,我覺得網上有張圖很不錯:

關於這二者的使用場景問題:

1.第一點應該想到介面與類的使用場景區別,當需要多重繼承的時候,可以通過實現多個介面去實現

2.當你需要一些方法有預設實現,可以使用抽象類

3.當基本功能不斷改變時,可以使用抽象類。因為這種情況下使用介面,需要修改所有實現了該介面的類

java抽象類與介面的區別抽象類與介面的特性是什麼

介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...

抽象類與介面的區別

c 中可以多繼承介面,卻只能繼承自乙個抽象類 抽象類中的方法可以包含一些實現,但介面卻只能定義方法的一種規範,不能包含實現 繼承類必須實現藉口中所有的方法,而不一定要實現抽象類中的所有方法 抽象類可以繼承自抽象類 但介面不能繼承自介面 派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員 ...

抽象類與介面的區別

c 中可以多繼承介面,卻只能繼承自乙個抽象類 抽象類中的方法可以包含一些實現,但介面卻只能定義方法的一種規範,不能包含實現 繼承類必須實現藉口中所有的方法,而不一定要實現抽象類中的所有方法 抽象類可以繼承自抽象類 但介面不能繼承自介面 派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員 ...