7.繼承與多態(tài)

  1. 子類是extends父類出來的
  2. 當(dāng)調(diào)用對象引用的方法時,會調(diào)用到與該對象類型最接近的方法——最低階的會勝出
  3. 判斷b是否要繼承a時,可以用“是一個(isa)”法則,如果b是一個a,則可以繼承
    例:三角形是一個多邊形,則三角形可以繼承多邊形
    所有子類都能通過任一上層父類的isa測試
    例:類Yextends類A,且類Y是類Z的父類,則ZisaX
  4. 繼承是單向的,三角形是一個多邊形,但多邊形不是一個三角形
    b繼承a意味著b可以做任何a可以做的事情(而且可能會做更多的行為)
  5. 子類引用父類的方法后,如果要加上額外的行為,可以用super
    例:publicvoidroam(){
    super.roam();}
  6. 4種存取權(quán)限,限制程度逐級減小
    privatedefaultprotectedpublic
    public類型的成員會被繼承
    private類型的成員不會被繼承
  7. 繼承的使用規(guī)則
    當(dāng)某個類會比其父類更具有特定意義時使用繼承
    在行為程序應(yīng)該被多個相同基本類型的類所共享時
  8. 子類會繼承父類所有public類型的實(shí)例變量和方法
    但不會繼承父類所有private類型的變量和方法
  9. 繼承下來的方法可以被覆蓋掉,但示例變量不能被覆蓋掉

多態(tài)

多態(tài)存在的三個前提:
A.要有繼承關(guān)系
B.子類要重寫父類的方法
C.父類引用指向子類對
多態(tài)成員訪問的特點(diǎn):
成員變量
編譯看父類,運(yùn)行看父類
成員方法
編譯看父類,運(yùn)行看子類。動態(tài)綁定
靜態(tài)方法
編譯看父類,運(yùn)行看父類。
(靜態(tài)和類相關(guān),算不上重寫,所以,訪問還是父類的)
只有非靜態(tài)的成員方法,編譯看父類,運(yùn)行看子類

  1. 在多態(tài)下,引用和對象可以是不同的類型——AnimalmyDog=newDog();
    運(yùn)用多態(tài)時,引用類型可以是實(shí)際對象類型的父類
    可以通過該方法做出多態(tài)數(shù)組
    例:p186
    通過多態(tài),可以編寫出引進(jìn)新型子類時也不必修改的程序
  2. 子類沒有層數(shù)限制,但最好少一點(diǎn)
  3. 防止某個類被做出子類的3個方法
    A.存取控制——不標(biāo)記公有,非公有的類只能被同一個包的類做出子類
    B.用final修飾符,這表示它是繼承樹的末端,不能被繼承
    C.讓類只擁有private的構(gòu)造程序(constructor,第9章會說明)
  4. final為了確保方法都是自己寫的版本時使用,可以只用final標(biāo)識方法
  5. 多態(tài)中子類方法覆蓋父類方法的規(guī)則
    A.參數(shù)必須要一樣,且返回類型必須要兼容
    B.不能降低方法的存取權(quán)限(必須相同或更為開放)
    如果不遵循上述規(guī)則,使用多態(tài)調(diào)用時會調(diào)用父類的方法

重載

  1. 重載的意義是兩個方法的名稱相同,但參數(shù)不同。所以,重載與多態(tài)毫無關(guān)系。
  2. 使用規(guī)則:A.返回類型可以不同B.不能只改變返回類型C.可以更改存取權(quán)限
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、繼承 當(dāng)兩個事物之間存在一定的所屬關(guān)系,即就像孩子從父母那里得到遺傳基因一樣,當(dāng)然,java要遺傳的更完美,這...
    玉圣閱讀 1,121評論 0 2
  • 1.面向?qū)ο笕筇匦?-封裝性 -繼承性 -多態(tài)性 2.什么是封裝 封裝性就是隱藏實(shí)現(xiàn)細(xì)節(jié),僅對外公開接口。 3....
    夢夜繁星閱讀 1,172評論 0 6
  • 繼承和多態(tài) 1. 繼承的優(yōu)缺點(diǎn) 優(yōu)點(diǎn):(1)子類可以靈活地改變父類中的已有方法;(2)能夠最大限度的實(shí)現(xiàn)代碼重用。...
    MinoyJet閱讀 727評論 0 0
  • Win7下如何打開DOS控制臺? a:開始--所有程序--附件--命令提示符 b:開始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,709評論 4 12
  • 對於我們來說,當(dāng)下究竟是什麼?佛家言當(dāng)下為一剎,這裡意旨把時間和空間切開後,把其濃縮成立體的球體,每個球體中的連線...
    即心即佛閱讀 254評論 0 0

友情鏈接更多精彩內(nèi)容