java實(shí)現(xiàn)接口關(guān)鍵字 JAVA只可以單繼承但是object又是每個(gè)類的超類,在這基礎(chǔ)上類還可以繼承一個(gè)類,是什么原理?
JAVA只可以單繼承但是object又是每個(gè)類的超類,在這基礎(chǔ)上類還可以繼承一個(gè)類,是什么原理?1. Java只支持單一繼承,但可以實(shí)現(xiàn)多個(gè)接口。如果未顯示繼承任何類,系統(tǒng)將默認(rèn)繼承對(duì)象類。但是,如果
JAVA只可以單繼承但是object又是每個(gè)類的超類,在這基礎(chǔ)上類還可以繼承一個(gè)類,是什么原理?
1. Java只支持單一繼承,但可以實(shí)現(xiàn)多個(gè)接口。如果未顯示繼承任何類,系統(tǒng)將默認(rèn)繼承對(duì)象類。但是,如果a顯示繼承B,則系統(tǒng)不會(huì)給出默認(rèn)的繼承對(duì)象,而是a將繼承B,B將繼承object,這相當(dāng)于間接地繼承對(duì)象。
2. 談到繼承,您會(huì)想到面向?qū)ο蟮囊粋€(gè)原則:優(yōu)先考慮組合而不是繼承。為什么?
首先,繼承和組合都可以達(dá)到代碼重用的效果。我認(rèn)為有以下考慮:
1。繼承的父類繼承父類的成員以增加耦合度
2。如果父類發(fā)生變化,會(huì)影響子類,組合只需要保證接口的穩(wěn)定性
3。子類在編譯時(shí)繼承父類,不能動(dòng)態(tài)更改,但組合可以根據(jù)需要使用不同的實(shí)現(xiàn)類。
因此,組合更加靈活和可擴(kuò)展。
但是,如果您需要向上移動(dòng),或者明確說(shuō)明類關(guān)系是is-a關(guān)系,則仍然需要使用繼承。
希望對(duì)您有所幫助,可以跟著我,繼續(xù)分享java知識(shí),謝謝。
謝謝你的邀請(qǐng)!JavaSe屬于java的基礎(chǔ)。現(xiàn)在我根據(jù)自己的編程經(jīng)驗(yàn)總結(jié)一下基本知識(shí)
標(biāo)識(shí)符、修飾符、變量、數(shù)組、枚舉、Java關(guān)鍵字、注釋、繼承、接口等基本概念
多態(tài)、繼承、封裝、抽象、類、對(duì)象、實(shí)例、方法、重載
內(nèi)建類型、引用類型,Java常量,自學(xué)習(xí)動(dòng)態(tài)類型轉(zhuǎn)換,強(qiáng)制類型轉(zhuǎn)換,隱式強(qiáng)制類型轉(zhuǎn)換
局部變量,實(shí)例變量,靜態(tài)變量
訪問(wèn)控制修飾符,非訪問(wèn)修飾符,抽象方法
運(yùn)算符,循環(huán)結(jié)構(gòu),分支結(jié)構(gòu),
框架學(xué)習(xí),JVM原理分析,高并發(fā)解決方案。
我們走吧,不喜歡
從Java開(kāi)始。語(yǔ)法嚴(yán)謹(jǐn)、美觀、簡(jiǎn)潔。語(yǔ)言只是一種工具,你需要學(xué)習(xí)什么。