導航:首頁 > 編程語言 > java支持多繼承嗎

java支持多繼承嗎

發布時間:2021-12-09 06:27:17

java支持多重繼承

其實你說的多重繼承就是Java中所說的介面實現

如果確切的說,Java只存在單繼承,也就是說,一個類最多隻能夠有一個基類,通過extends實現。
如果想實現"多繼承",就應該通過介面的形式實現,通過實現interface介面可以實現"多繼承"!

Ⅱ java類是否可以多繼承,怎麼實現多繼承

在沒有好好地研習面向對象設計的設計模式之前,我對Java介面和Java抽象類的認識還是很模糊,很不可理解。

剛學Java語言時,就很難理解為什麼要有介面這個概念,雖說是可以實現所謂的多繼承,可一個只有方法名,沒有方法體的東西,我實現它又有什麼用呢?我從它那什麼也得不到,除了一些方法名,我直接在具體類里加入這些方法不就行了嗎?

為什麼一定要有抽象類這個概念?為什麼就不能把這個父類寫成一個具體的類,子類再繼承它不就可以了嗎?何必弄一個抽象類出來,還要弄一些沒有方法體的抽象方法,弄得又象介面又象類的,讓人捉摸不定。

當我開始學習java設計模式,真正走進面向對象設計的大門之後,我才發現,自己對面向對象設計的理解原來是那麼的片面,那麼的膚淺,根本就沒有真正理解面向對象思想的精髓,在某一種程度上還受著面向過程的影響,以為弄出了一個個類,就算是面向對象了,而其實還是被過程所驅使著。

我還是說說我現在對面向對象思想的理解吧,不一定正確全面,但我想應該還算是比以前略有進步吧。

面向對象思想,我覺得最關鍵的就是抽象。

一個軟體設計的好壞,我想很大程度上取決於它的整體架構,而這個整體架構其實就是你對整個宏觀商業業務的抽象框架,當代表業務邏輯的高層抽象層結構合理時,你底層的具體實現需要考慮的就僅僅是一些演算法和一些具體的業務實現了。當你需要再開發另一個相近的項目時,你以前的抽象層說不定還可以再次利用呢,面對對象的設計,復用的重點其實應該是抽象層的復用,而不是具體某一個代碼塊的復用,是不是一下子感覺自己對復用理解的高度又上升了一層?^_^

說到了抽象,我就不能不提到曾讓我頭痛的Java介面和Java抽象類了,這也是本文我想說的重點。

既然面向對象設計的重點在於抽象,那Java介面和Java抽象類就有它存在的必然性了。

Java介面和Java抽象類代表的就是抽象類型,就是我們需要提出的抽象層的具體表現。OOP面向對象的編程,如果要提高程序的復用率,增加程序的可維護性,可擴展性,就必須是面向介面的編程,面向抽象的編程,正確地使用介面、抽象類這些太有用的抽象類型做為你結構層次上的頂層。

Java介面和Java抽象類有太多相似的地方,又有太多特別的地方,究竟在什麼地方,才是它們的最佳位置呢?把它們比較一下,你就可以發現了。

1、Java介面和Java抽象類最大的一個區別,就在於Java抽象類可以提供某些方法的部分實現,而Java介面不可以,這大概就是Java抽象類唯一的優點吧,但這個優點非常有用。
如果向一個抽象類里加入一個新的具體方法時,那麼它所有的子類都一下子都得到了這個新方法,而Java介面做不到這一點,如果向一個Java介面里加入一個新方法,所有實現這個介面的類就無法成功通過編譯了,因為你必須讓每一個類都再實現這個方法才行,這顯然是Java介面的缺點。

2、一個抽象類的實現只能由這個抽象類的子類給出,也就是說,這個實現處在抽象類所定義出的繼承的等級結構中,而由於Java語言的單繼承性,所以抽象類作為類型定義工具的效能大打折扣。
在這一點上,Java介面的優勢就出來了,任何一個實現了一個Java介面所規定的方法的類都可以具有這個介面的類型,而一個類可以實現任意多個Java介面,從而這個類就有了多種類型。

3、從第2點不難看出,Java介面是定義混合類型的理想工具,混合類表明一個類不僅僅具有某個主類型的行為,而且具有其他的次要行為。

4、結合1、2點中抽象類和Java介面的各自優勢,具精典的設計模式就出來了:聲明類型的工作仍然由Java介面承擔,但是同時給出一個Java抽象類,且實現了這個介面,而其他同屬於這個抽象類型的具體類可以選擇實現這個Java介面,也可以選擇繼承這個抽象類,也就是說在層次結構中,Java介面在最上面,然後緊跟著抽象類,哈,這下兩個的最大優點都能發揮到極至了。這個模式就是「預設適配模式」。
在Java語言API中用了這種模式,而且全都遵循一定的命名規范:Abstract +介面名。

Java介面和Java抽象類的存在就是為了用於具體類的實現和繼承的,如果你准備寫一個具體類去繼承另一個具體類的話,那你的設計就有很大問題了。Java抽象類就是為了繼承而存在的,它的抽象方法就是為了強制子類必須去實現的。

使用Java介面和抽象Java類進行變數的類型聲明、參數是類型聲明、方法的返還類型說明,以及數據類型的轉換等。而不要用具體Java類進行變數的類型聲明、參數是類型聲明、方法的返還類型說明,以及數據類型的轉換等。

我想,如果你編的代碼裡面連一個介面和抽象類都沒有的話,也許我可以說你根本沒有用到任何設計模式,任何一個設計模式都是和抽象分不開的,而抽象與Java介面和抽象Java類又是分不開的。

理解抽象,理解Java介面和抽象Java類,我想就應該是真正開始用面向對象的思想去分析問題,解決問題了吧。

Ⅲ java什麼情況下用介面可以多繼承嗎

定義介面可以解決JAVA中無法多重繼承的問題。而且可以實現「多態」 JAVA只支持單一繼承,為彌補這一點,JAVA引入了介面這個概念,簡單的說介面是對某個事物對外提供的一些功能 的聲明

Ⅳ java語言可以通過什麼實現多繼承

(1)通過實現多個介面。

(2)通過內部類實現多重繼承。

publicclassFather{
publicintstrong(){
return9;
}
}

publicclassMother{
publicintkind(){
return8;
}
}

publicclassSon{

/**
*內部類繼承Father類
*/
classFather_1extendsFather{
publicintstrong(){
returnsuper.strong()+1;
}
}

classMother_1extendsMother{
publicintkind(){
returnsuper.kind()-2;
}
}

publicintgetStrong(){
returnnewFather_1().strong();
}

publicintgetKind(){
returnnewMother_1().kind();
}
}

Ⅳ java 可不可以繼承多個類

不能。抄
一個類不能直接繼承襲多個類,java是單繼承語言。
比如說這樣:class A extends B,C 不能這樣寫,因為java不支持多繼承。
但是可以像下面這樣實現繼承多個類:class A extends B,class C extends A,這樣C就同時繼承了B和A兩個類了。

Ⅵ java為什麼不支持多繼承

類定義屬性和方法 描述某一類事物的抽象
而介面定義的是行為 並不限於任何具體意向

按照邏輯上來說 單繼承更明確 一個子類就應該是其父類代表的事物中的某個更具體的類別 不應該即是這種東西又是那種東西
而從實用角度上來說 單繼承易讀 易維護 語義清晰 邏輯清楚

而介面則不同 介面只定義一些公共行為 比如有兩個介面 一個定義了跑這個動作 另一個定義了走這個動作 人這個類就可以同時實現這兩個介面所定義的行為

類對介面的implements稱作實現 不能叫做繼承

當然 介面可以多繼承介面 因為介面只定義行為 並不包含類別的含義 不指代具體的某類事物 而且 從語義上來說 介面對介面的繼承稱之為擴展更為合適

Ⅶ java 支持多繼承嗎

類定義屬性和方法
描述某一類事物的抽象
而介面定義的是行為
並不限於任何具體意向
按照邏輯上來說
單繼承更明確
一個子類就應該是其父類代表的事物中的某個更具體的類別
不應該即是這種東西又是那種東西
而從實用角度上來說
單繼承易讀
易維護
語義清晰
邏輯清楚
而介面則不同
介面只定義一些公共行為
比如有兩個介面
一個定義了跑這個動作
另一個定義了走這個動作
人這個類就可以同時實現這兩個介面所定義的行為
類對介面的implements稱作實現
不能叫做繼承
當然
介面可以多繼承介面
因為介面只定義行為
並不包含類別的含義
不指代具體的某類事物
而且
從語義上來說
介面對介面的繼承稱之為擴展更為合適

Ⅷ java類是否可以多繼承怎麼實現多繼承

java類不可以多繼承。

Ⅸ 為什麼Java不支持多重繼承

java語言為了可維護性高及清晰的設計思想, 最終不採用多重繼承。如果有多重繼承,一個子類同時繼承兩個父類想用的行為,最終最終採用那一個繼承呢?所以為了簡化避免這種問題的產生,最終不支持多繼承。如果希望有這層關系的產生,可以採用介面實現,由於介面只有方法聲明而且沒有提供任何實現,因此只有一個特定方法的實現,因此不會有任何歧義。

閱讀全文

與java支持多繼承嗎相關的資料

熱點內容
有什麼矯正音準的app 瀏覽:372
大數據挖掘技術特點 瀏覽:326
免費看不卡電視劇網站 瀏覽:60
word行與行首字對不齊 瀏覽:434
考古電影排行榜前十名 瀏覽:986
消失的眼珠子電影 瀏覽:806
海盜奇兵資源島怎麼升級 瀏覽:905
日本關於地鐵故事的電影 瀏覽:432
新裝win10系統無法聯網 瀏覽:17
備份文件可以在電腦打開嗎 瀏覽:272
林凡小說主角穿越系統 瀏覽:296
怎麼把所有文件合成一個pdf文件 瀏覽:214
喪屍圍城32號升級檔 瀏覽:936
激情戲大電影 瀏覽:175
女主遭受婦刑小說 瀏覽:413
成龍哪部電影jj露出來了 瀏覽:691
武漢城市職業學院工業網路技術 瀏覽:310
韓圍愛情動漫電影推薦 瀏覽:536
國產跟狗有關的電影 瀏覽:991
香港鬼片女警照鏡子被附身 瀏覽:974

友情鏈接