《Java編程的邏輯》筆記 16 - 繼承的細(xì)節(jié)

繼承的細(xì)節(jié).png

構(gòu)造方法

  • super
    (1)子類可以通過super(...)調(diào)用父類的構(gòu)造方法
    (2)果子類沒有通過super(...)調(diào)用,則會自動調(diào)動父類的默認(rèn)構(gòu)造方法
    (3)沒有默認(rèn)構(gòu)造方法逞力。它的任何子類都必須在構(gòu)造方法中通過super(...)調(diào)用Base的帶參數(shù)構(gòu)造方法

  • 構(gòu)造方法調(diào)用重寫方法

    image.png

    image.png
    image.png

輸出結(jié)果是:0 123

第一次輸出為0,第二次為123宽气。第一行為什么是0呢?第一次輸出是在new過程中輸出的,在new過程中,首先是初始化父類输硝,父類構(gòu)造方法調(diào)用test(),test被子類重寫了程梦,就會調(diào)用子類的test()方法点把,子類方法訪問子類實(shí)例變量a,而這個(gè)時(shí)候子類的實(shí)例變量的賦值語句和構(gòu)造方法還沒有執(zhí)行屿附,所以輸出的是其默認(rèn)值0郎逃。
在父類構(gòu)造方法中調(diào)用可被子類重寫的方法,是一種不好的實(shí)踐挺份,容易引起混淆窃判,應(yīng)該只調(diào)用private的方法绒疗。

重名與靜態(tài)綁定

(1)子類可以重寫父類非private的方法,當(dāng)調(diào)用的時(shí)候批销,會動態(tài)綁定嘿辟,執(zhí)行子類的方法
(2)重名是可以的土榴,重名后實(shí)際上有兩個(gè)變量或方法厦画。對于private變量和方法嘱能,它們只能在類內(nèi)被訪問,訪問的也永遠(yuǎn)是當(dāng)前類的伦吠,即在子類中,訪問的是子類的魂拦,在父類中毛仪,訪問的父類的,它們只是碰巧名字一樣而已芯勘,沒有任何關(guān)系箱靴。
(3)對于public變量和方法,則要看如何訪問它荷愕,在類內(nèi)訪問的是當(dāng)前類的衡怀,但子類可以通過super.明確指定訪問父類的。在類外安疗,則要看訪問變量的靜態(tài)類型抛杨,靜態(tài)類型是父類,則訪問父類的變量和方法荐类,靜態(tài)類型是子類怖现,則訪問的是子類的變量和方法

例:


image.png

image.png

image.png

輸出


image.png

當(dāng)通過b (靜態(tài)類型Base) 訪問時(shí), 訪問的是Base的變量和方法,當(dāng)通過c (靜態(tài)類型Child)訪問時(shí)屈嗤, 訪問的是Child的變量和方法潘拨, 這稱之為靜態(tài)綁定, 即訪問綁定到變量的靜態(tài)類型饶号, 靜態(tài)綁定在程序編譯階段即可決定铁追, 而動態(tài)綁定則要等到程序運(yùn)行時(shí)。 實(shí)例變量茫船、靜態(tài)變量琅束、靜態(tài)方法、private方法透硝,都是靜態(tài)綁定的狰闪。

重載和重寫

  • 重載
    重載是指方法名稱相同但參數(shù)簽名不同(參數(shù)個(gè)數(shù)或類型或順序不同)
  • 重寫
    重寫是指子類重寫父類相同參數(shù)簽名的方法
    當(dāng)有多個(gè)重名函數(shù)的時(shí)候,在決定要調(diào)用哪個(gè)函數(shù)的過程中濒生,首先是按照參數(shù)類型進(jìn)行匹配的埋泵,換句話說,尋找在所有重載版本中最匹配的罪治,然后才看變量的動態(tài)類型丽声,進(jìn)行動態(tài)綁定

父子類型轉(zhuǎn)換

(1)向上轉(zhuǎn)型
子類型的對象可以賦值給父類型的引用變量
(2)向下轉(zhuǎn)型?
語法上可以進(jìn)行強(qiáng)制類型轉(zhuǎn)換觉义,但不一定能轉(zhuǎn)換成功

個(gè)父類的變量雁社,能不能轉(zhuǎn)換為一個(gè)子類的變量,取決于這個(gè)父類變量的動態(tài)類型(即引用的對象類型)是不是這個(gè)子類或這個(gè)子類的子類晒骇。
例:
可以


image.png

不可以


image.png
  • instanceof


    image.png

從而安全的進(jìn)行類型轉(zhuǎn)換
instanceof前面是變量霉撵,后面是類,返回值是boolean值洪囤,表示變量引用的對象是不是該類或其子類的對象

繼承訪問權(quán)限 (protected)

(1)不能被外部任意訪問徒坡,但可被子類訪問
(2)還表示可被同一個(gè)包中的其他類訪問,不管其他類是不是該類的子類
(3)模板方法在很多框架中有廣泛的應(yīng)用瘤缩,這是使用protected的一個(gè)常用場景

可見性重寫

重寫時(shí)喇完,子類方法不能降低父類方法的可見性
不能降低是指,父類如果是public剥啤,則子類也必須是public锦溪,父類如果是protected,子類可以是protected府怯,也可以是public刻诊,即子類可以升級父類方法的可見性但不能降低
"is-a"的關(guān)系
即子類對象也屬于父類,子類必須支持父類所有對外的行為
防止繼承 (final)
默認(rèn)情況下都是可以被繼承的富腊,但加了final關(guān)鍵字之后就不能被繼承了

寫在最后

都看到這里坏逢,保存思維導(dǎo)圖,順便給個(gè)贊唄!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末是整,一起剝皮案震驚了整個(gè)濱河市肖揣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌浮入,老刑警劉巖龙优,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異事秀,居然都是意外死亡彤断,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門易迹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宰衙,“玉大人,你說我怎么就攤上這事睹欲」┝叮” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵窘疮,是天一觀的道長袋哼。 經(jīng)常有香客問我,道長闸衫,這世上最難降的妖魔是什么涛贯? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮蔚出,結(jié)果婚禮上弟翘,老公的妹妹穿的比我還像新娘。我一直安慰自己骄酗,他們只是感情好衅胀,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著酥筝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雏门。 梳的紋絲不亂的頭發(fā)上嘿歌,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機(jī)與錄音茁影,去河邊找鬼宙帝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛募闲,可吹牛的內(nèi)容都是我干的步脓。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼靴患!你這毒婦竟也來了仍侥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤鸳君,失蹤者是張志新(化名)和其女友劉穎农渊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體或颊,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡砸紊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了囱挑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片醉顽。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖平挑,靈堂內(nèi)的尸體忽然破棺而出游添,到底是詐尸還是另有隱情,我是刑警寧澤弹惦,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布否淤,位于F島的核電站,受9級特大地震影響棠隐,放射性物質(zhì)發(fā)生泄漏石抡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一助泽、第九天 我趴在偏房一處隱蔽的房頂上張望啰扛。 院中可真熱鬧,春花似錦嗡贺、人聲如沸隐解。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽煞茫。三九已至,卻和暖如春摄凡,著一層夾襖步出監(jiān)牢的瞬間续徽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工亲澡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钦扭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓床绪,卻偏偏與公主長得像客情,于是被迫代替她去往敵國和親其弊。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容