摘要:的繼承具有單繼承的特點(diǎn),每個(gè)子類只有一個(gè)直接父類。繼承的特點(diǎn)的繼承通過關(guān)鍵字來實(shí)現(xiàn),實(shí)現(xiàn)繼承的類被稱為子類,被繼承的類被稱為父類,有的也稱其為基類超類。是提供的一個(gè)關(guān)鍵字,用于限定該對(duì)象調(diào)用它從父類繼承得到的實(shí)例變量或方法。
繼承是面向?qū)ο蟮娜筇卣髦?,也是軟件?fù)用的重要手段。Java的繼承具有單繼承的特點(diǎn),每個(gè)子類只有一個(gè)直接父類。
繼承的特點(diǎn)Java的繼承通過extends關(guān)鍵字來實(shí)現(xiàn),實(shí)現(xiàn)繼承的類被稱為子類,被繼承的類被稱為父類,有的也稱其為基類、超類。子類是對(duì)父類的拓展,子類是一種特殊的父類。
如果定義一個(gè)java類時(shí)并未顯示指定這個(gè)類的直接父類,則這個(gè)類默認(rèn)拓展java.lang.Object類。
這種子類包含與父類同名方法的現(xiàn)象被稱為方法重寫,也被稱為方法覆蓋。方法的重寫要遵循“兩同兩小一大”規(guī)則。
兩同 即方法名相同,形參列表相同;
兩小 指的是子類方法返回值類型應(yīng)比父類返回值類型更小或相等,子類方法聲明拋出的異常類型應(yīng)該比父類方法聲明拋出的異常類型更小或相等;
一大 指的是子類方法的訪問權(quán)限應(yīng)比父類方法的訪問權(quán)限更大或相等。
尤其需要指出的是,覆蓋方法和被覆蓋方法要么都是類方法,要么都是實(shí)例方法,不能一個(gè)是類方法,一個(gè)是實(shí)例方法
當(dāng)子類覆蓋了父類方法后,子類的對(duì)象將無法訪問父類中被覆蓋的方法,但可以在子類方法中調(diào)用父類中被覆蓋的方法。如果需要在子類方法中調(diào)用父類中被覆蓋的方法,則可以使用super(被覆蓋的是實(shí)例方法)或者父類類名(被覆蓋的是類方法)作為調(diào)用者來調(diào)用父類中被覆蓋的方法。
如果父類具有private訪問權(quán)限,則該方法對(duì)其子類是隱藏的,因此其子類無法訪問該方法,也就是無法重寫該方法。如果子類中定義了一個(gè)與父類private方法具有相同的方法名、相同的形參列表、相同的方法返回值類型的方法,依然不是重寫,只是在子類中重新定義了一個(gè)新方法。
重載主要發(fā)生在同一個(gè)類的多個(gè)同名方法之間,而重寫發(fā)生在子類和父類的同名方法之間。它們之間的聯(lián)系很少,除了二者都是發(fā)生在方法之間,并且要求方法名相同之外,沒有太大相似之處。當(dāng)然,父類方法和子類方法之間也可能發(fā)生重載,因?yàn)樽宇悤?huì)獲得父類方法。
super限定如果需要在子類方法中調(diào)用父類被覆蓋的實(shí)例方法,則可以使用super限定來調(diào)用父類被覆蓋的實(shí)例方法。
super是Java提供的一個(gè)關(guān)鍵字,super用于限定該對(duì)象調(diào)用它從父類繼承得到的實(shí)例變量或方法。
正如this不能出現(xiàn)在static修飾的方法中一樣,super也不能出現(xiàn)在static修飾的方法中。static修飾的方法是屬于該類的,該方法的調(diào)用者可能是一個(gè)類,而不是對(duì)象,因而super限定也就失去了意義。
不管是否使用super調(diào)用來執(zhí)行父類構(gòu)造器的初始化代碼,子類構(gòu)造器總會(huì)調(diào)用父類構(gòu)造器一次。子類構(gòu)造器調(diào)用父類構(gòu)造器分如下幾種情況:
子類構(gòu)造器執(zhí)行體的第一行使用super顯示調(diào)用父類構(gòu)造器,系統(tǒng)將根據(jù)super調(diào)用里傳入的實(shí)參列表調(diào)用父類對(duì)應(yīng)的構(gòu)造器。
子類構(gòu)造器執(zhí)行體的第一行代碼使用this顯示調(diào)用本類中重載的構(gòu)造器,系統(tǒng)將根據(jù)this調(diào)用里傳入的實(shí)參列表調(diào)用本類中的另一個(gè)構(gòu)造器,執(zhí)行本類中另一個(gè)構(gòu)造器是即會(huì)調(diào)用父類構(gòu)造器。
子類構(gòu)造器執(zhí)行體中既沒有super調(diào)用,也沒有this調(diào)用,系統(tǒng)將會(huì)在執(zhí)行子類構(gòu)造器之前,隱式調(diào)用父類無參數(shù)的構(gòu)造器。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/68522.html
摘要:繼承就是子類繼承父類的特征和行為,使得子類對(duì)象實(shí)例具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。關(guān)鍵字在中,類的繼承是單一繼承,也就是說,一個(gè)子類只能擁有一個(gè)父類,所以只能繼承一個(gè)類。 概念 繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類。 繼承就是子類繼承父類的特征和行為,使得子類對(duì)象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承...
繼承 在前面的課程中,你已經(jīng)多次看到了繼承,在Java語言中,類可以從其他類派生,從而從這些類繼承字段和方法。 定義:從另一個(gè)類派生的類稱為子類(也是派生類,擴(kuò)展類或子類),派生子類的類稱為超類(也是基類或父類)。 除了Object沒有超類,每個(gè)類都有一個(gè)且只有一個(gè)直接超類(單繼承),在沒有任何其他顯式超類的情況下,每個(gè)類都隱式地是Object的子類。 類可以從派生自類的類派生的類派生,依此類推,...
摘要:格式子類名父類名好處提高了代碼的復(fù)用性提高了代碼的維護(hù)性通過少量的修改,滿足不斷變化的具體要求讓類與類產(chǎn)生了一個(gè)關(guān)系,是多態(tài)的前提要求有共同的屬性或操作有細(xì)微的差別繼承的弊端讓類的耦合性增強(qiáng)。 showImg(https://segmentfault.com/img/remote/1460000019321816?w=600&h=242); 第二階段 JAVA面向?qū)ο?第二章 繼承 其...
摘要:前言是面對(duì)對(duì)象的語言,因此有必要單獨(dú)紀(jì)錄下對(duì)象的各種定義和理解。面對(duì)對(duì)象基本概述概述是基于面向過程的變成思想,是對(duì)面向過程的一種封裝。面對(duì)對(duì)象開發(fā)就是不斷的創(chuàng)建對(duì)象,使用對(duì)象,指揮對(duì)象做事情。面對(duì)對(duì)象設(shè)計(jì)其實(shí)就是在管理和維護(hù)對(duì)象之間的關(guān)系。 前言 java是面對(duì)對(duì)象的語言,因此有必要單獨(dú)紀(jì)錄下對(duì)象的各種定義和理解。 面對(duì)對(duì)象,主要包括:面向?qū)ο笏枷耄惻c對(duì)象及其使用,對(duì)象的內(nèi)存圖,成...
摘要:上學(xué)學(xué)的完全沒印象,基礎(chǔ)爛的不行,最近項(xiàng)目主要是改,有時(shí)間就看了一下這本書補(bǔ)一下基礎(chǔ)在寫項(xiàng)目時(shí),老用到繼承,但是對(duì)其了解不深,會(huì)用但是不理解概念繼承是面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類。 上學(xué)學(xué)的完全沒印象,Java基礎(chǔ)爛的不行,最近項(xiàng)目主要是改bug,有時(shí)間就看了一下Head First Java這本書補(bǔ)一下基礎(chǔ) 在寫項(xiàng)目時(shí),老用到Java繼承,但是對(duì)其了解不深...
摘要:實(shí)現(xiàn)多態(tài)的三個(gè)必要條件繼承在多態(tài)中必須存在有繼承關(guān)系的子類和父類。參考面試題解惑系列九繼承多態(tài)重載和重寫面向?qū)ο笕筇匦苑庋b,繼承,多態(tài)以及抽象接口的介紹 版權(quán)聲明:本文由吳仙杰創(chuàng)作整理,轉(zhuǎn)載請(qǐng)注明出處:https://segmentfault.com/a/1190000009141566 1. 面向?qū)ο缶幊痰娜筇匦?Java 面向?qū)ο缶幊逃腥筇匦裕悍庋b、繼承、多態(tài)。 1.1 封裝...
閱讀 3404·2023-04-26 02:09
閱讀 2722·2021-11-24 09:39
閱讀 3374·2021-11-16 11:52
閱讀 3681·2021-10-26 09:50
閱讀 2841·2021-10-08 10:05
閱讀 2523·2021-09-22 15:25
閱讀 3365·2019-08-30 13:14
閱讀 991·2019-08-29 17:06