Java中抽象類和介面的具體區別是什麼?

時間 2021-05-30 02:33:29

1樓:東城

比如說乙個海鷗和乙個波音747,

海鷗是鳥的例項化,鳥是海鷗的抽象類

同樣波音747也是飛機的抽象類,

鳥和飛機分別是海鷗和747的父類

但是他們都有相同的特點,比如說會飛

但是乙個類只能繼承乙個父類

不能再繼承其他類

如果要統一這些東西的其他共同特點,就定義介面,根本特質就定義為父類不知道說的對不對

2樓:靈魂對撞機

抽象類是oop的那一套,有些方法可以不用實現,也不能例項化,必須繼承

介面只有方法,還是公共的但是只有乙個架子,new乙個出來必須重寫方法

3樓:

介面只宣告動作

抽象類即可以宣告動作,也可以有具體實現方法因此他們之間的差異還是在於其抽象程度上,

如果是只需要宣告動作,則使用介面

如果需要包含自己的預設實現,則使用抽象類。

建議讀下ArrayList原始碼,就能理解List介面和其他抽象類的作用了。

4樓:方元之外

抽象類是類概念,同一類東西。介面是功能方法方面的。

比如乙個人的抽象類,下面可以是白人,黑人,黃種人,超人,他們可以來自繼承同乙個人的抽象類。

這時還有乙個介面飛的介面,那麼超人和鳥都可以實現這個介面

5樓:

工具都是在沒他們不行的時候用,介面,抽象類都是這樣,保持不要用,保持到不得不用的時候。

比如,有個小夥子三天兩頭在你類裡面寫行方法,一點也不注意復用,你一氣之下寫個介面然後說全體NEW物件時候一律只能用介面,違反者查出扣績效伺候,於是世界平靜了…… 除了他們三天兩頭來找你加介面……

6樓:

本質區別:

抽象類就是一種特殊的類,跟普通類一樣是用來表示一類事物,而介面是用來定義一組行為能力、規範的,這兩者最好看作是兩種本質不同的東西。

使用上的區別:

假如現在有一批抽象方法,實現它們的類都是某乙個類的子類,那麼就把這個父類作為抽象類,抽象方法放在它裡面;如果抽象方法的實現類不全是在同一繼承體系下的,那就把這些抽象方法放在介面裡面。

如何生動的解釋為什麼java中要用抽象類

軟體質量保障 在使用上,可以理解抽象類是對介面類的乙個擴充套件 介面類是抽象類的乙個子集 分析如下 抽象類可以沒有抽象方法 某個類可以在不提供抽象方法的前提下,宣告為抽象類 一旦乙個類被宣告為抽象類,就不能夠被直接例項化 抽象類和介面的區別 區別 子類只能繼承乙個抽象類,不能繼承多個子類可以實現多個...

介面和抽象類有什麼區別?

知道自己不知道 個人愚見 介面是對不同型別事物的抽象 比如飛機和鳥不是同類,但是都有fly 功能,於是可以對兩者進行抽象出fly 2.抽象類是對同類事物的抽象 比如狗會叫,貓也會叫,他們都是動物類,於是可以在基類中抽象出乙個say 的行為 迷途書童 如果僅說乙個區別,那就是設計原則的不一樣,這是最根...

Java中的類和c 中的類,在使用中要理解?

Lieu 長文慎入,內含 星際 穿越 我覺得這是乙個程式語言設計的問題,也是個空間緯度的問題.很有意思.還沒接受過科班的CS的訓練,程式設計經驗僅限J2EE的前後端,拋磚引玉,談談自己的思考.二維世界 我認為程式語言的基本元素是操作符和變數,而通過操作符操作變數這一行為即乙個語句.比如有變數a,有操...