Java零基礎(chǔ)自學(xué)DAY7 2018-03-19

類的繼承

Java的繼承具有單繼承的特點(diǎn)聪黎,每個(gè)子類只有一個(gè)直接父類

繼承的特點(diǎn)

繼承通過extends關(guān)鍵字來實(shí)現(xiàn),實(shí)現(xiàn)繼承的類被稱為子類线梗,被繼承的類稱為父類

父類和子類的關(guān)系是一般和特殊的關(guān)系,如水果和蘋果的關(guān)系

父類的包含范圍總比子類的包含范圍大,即父類是大類答毫,子類是小類

[修飾符] class SubClass extends SuperClass

{

? ? ? ? ?//類的定義部分

}

Java子類不能獲得父類的構(gòu)造器

定義一個(gè)父類:

子類繼承父類:

Java類可以有無數(shù)多個(gè)間接父類:

class Fruit extends Plant

class Apple extends Fruit

如果定義一個(gè)Java類時(shí),并未顯示指定這個(gè)類的直接父類季春,則這個(gè)類默認(rèn)擴(kuò)展java.lang.Object類

java.lang.object類是所有類的父類


重寫父類的方法



覆蓋方法和被覆蓋方法需要都是類方法烙常,或都是實(shí)例方法

可以使用super(被覆蓋的是實(shí)例方法)或者父類類名(被覆蓋的是類方法)來調(diào)用父類中被調(diào)用的方法

super限定

需要在子類方法中調(diào)用父類被覆蓋的實(shí)例方法,可以使用super限定來調(diào)用父類被覆蓋的實(shí)例方法

super用于限定該對(duì)象調(diào)用它從父類繼承得到的實(shí)例方法或變量

super不能出現(xiàn)在static修飾的的方法中

如果在構(gòu)造器中使用super鹤盒,則super用于限定該構(gòu)造器初始化的是該對(duì)象從父類繼承得到的實(shí)例變量蚕脏,而不是該類自己定義的實(shí)例變量


特殊情況:

調(diào)用父類構(gòu)造器

在一個(gè)構(gòu)造器中調(diào)用另一個(gè)重載的構(gòu)造器用this,在子類構(gòu)造器中調(diào)用父類構(gòu)造器使用super

構(gòu)造器之間的調(diào)用關(guān)系:

運(yùn)行結(jié)果:

創(chuàng)建任何對(duì)象總是從該類所在繼承樹最頂端類的構(gòu)造器開始執(zhí)行侦锯,然后依次向下執(zhí)行驼鞭,最后才執(zhí)行本類的構(gòu)造器,如果父類通過this調(diào)用了同類中重載的構(gòu)造器尺碰,就會(huì)依次執(zhí)行父類的多個(gè)構(gòu)造器


多態(tài)

編譯時(shí)類型和運(yùn)行時(shí)類型不一致挣棕,即為多態(tài)

多態(tài)性

運(yùn)行結(jié)果

編譯時(shí)類型為BaseClass(),運(yùn)行時(shí)類型為SubClass()

相同類型的變量亲桥,調(diào)用同一個(gè)方法時(shí)呈現(xiàn)出多種不同的行為特征洛心,即多態(tài)

對(duì)象的實(shí)例變量不具備多態(tài)性

引用變量只能調(diào)用聲明該變量是所用類里包含的方法

引用變量的強(qiáng)制類型轉(zhuǎn)換

引用變量需要調(diào)用它運(yùn)行時(shí)的方法,則必須把它強(qiáng)制類型轉(zhuǎn)換成運(yùn)行時(shí)類型

類型轉(zhuǎn)換運(yùn)算符:(type)variable?

轉(zhuǎn)換注意點(diǎn):

基本類型之間的轉(zhuǎn)換只能在數(shù)值類型之間進(jìn)行题篷,數(shù)值類型和布爾類型之間不能進(jìn)行類型轉(zhuǎn)換

引用類型之間的轉(zhuǎn)換只能在具有繼承關(guān)系的兩個(gè)類型之間進(jìn)行

如果試圖把一個(gè)父類實(shí)例轉(zhuǎn)換成子類類型词身,則這個(gè)對(duì)象必須實(shí)際上是子類實(shí)例才行(編譯時(shí)類型為父類,運(yùn)行時(shí)類型為子類)

運(yùn)行結(jié)果:

考慮到強(qiáng)制類型轉(zhuǎn)換時(shí)可能出現(xiàn)異常番枚,通過instanceof 運(yùn)算符來判定是否可以成功轉(zhuǎn)換

if (object instanceof? String)

{

String str = (String)objPri;

}

instanceof 運(yùn)算符

用于判斷前面的對(duì)象是否是后面的類法严,如果是损敷,則返回true,否則返回false

instanceof運(yùn)算符前面的操作數(shù)的編譯時(shí)類型要么與后面的類型相同深啤,要么與后面的類具有父子繼承關(guān)系拗馒,否則引起編譯錯(cuò)誤

繼承與組合

繼承是實(shí)現(xiàn)類復(fù)用的重要手段,但繼承也會(huì)破壞封裝

組合也是實(shí)現(xiàn)類復(fù)用的重要方式溯街,采用組合方式來來實(shí)現(xiàn)類復(fù)用則能提供更好的封裝性

使用繼承的注意點(diǎn)

盡量隱藏父類的內(nèi)部數(shù)據(jù)诱桂,盡量把父類的所有成員變量都設(shè)置成private訪問類型

不要讓子類可以隨意訪問、修改父類的方法

盡量不要在父類構(gòu)造器中調(diào)用將要被子類重寫的方法

父類派生子類:

子類需要增加額外屬性呈昔,如person派生出student類挥等,需要增加grade屬性

子類需要增加自己獨(dú)有的行為方式,person類派生出teacher類韩肝,需要一個(gè)teaching方法

利用組合實(shí)現(xiàn)復(fù)用

組合是把舊類對(duì)象作為新類的成員變量組合起來触菜,用以實(shí)現(xiàn)新類的功能,用戶看到的是新類的方法哀峻,而不能看到被組合對(duì)象的方法涡相,通常在新類里使用private修飾被組合的舊類對(duì)象

繼承:

替換為組合:

運(yùn)行結(jié)果為:

繼承表達(dá)is a的關(guān)系,組合表達(dá)has a的關(guān)系


初始化塊

對(duì)Java對(duì)象進(jìn)行初始化操作

使用初始化塊

[修飾符] {

? ? ? ?//初始化塊的可執(zhí)行代碼

}

初始化塊的修飾符只能是static剩蟀,使用static修飾的初始化塊稱為靜態(tài)初始化塊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末催蝗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子育特,更是在濱河造成了極大的恐慌丙号,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缰冤,死亡現(xiàn)場離奇詭異犬缨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)棉浸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門怀薛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人迷郑,你說我怎么就攤上這事枝恋。” “怎么了嗡害?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵焚碌,是天一觀的道長。 經(jīng)常有香客問我霸妹,道長十电,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮摆出,結(jié)果婚禮上朗徊,老公的妹妹穿的比我還像新娘首妖。我一直安慰自己偎漫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布有缆。 她就那樣靜靜地躺著象踊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪棚壁。 梳的紋絲不亂的頭發(fā)上杯矩,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音袖外,去河邊找鬼史隆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛曼验,可吹牛的內(nèi)容都是我干的泌射。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鬓照,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼熔酷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起豺裆,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤拒秘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后臭猜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躺酒,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年蔑歌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了羹应。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡丐膝,死狀恐怖量愧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情帅矗,我是刑警寧澤偎肃,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站浑此,受9級(jí)特大地震影響累颂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一紊馏、第九天 我趴在偏房一處隱蔽的房頂上張望料饥。 院中可真熱鬧,春花似錦朱监、人聲如沸岸啡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巡蘸。三九已至,卻和暖如春擂送,著一層夾襖步出監(jiān)牢的瞬間悦荒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工嘹吨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搬味,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓蟀拷,卻偏偏與公主長得像碰纬,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子匹厘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354