繼承和多態(tài)

自學(xué)整理記錄,大神見笑

單繼承

  • 繼承就是子類擁有父類所有的方法和屬性
  • 繼承語(yǔ)法:

class 類名(父類名):
?pass

  • 子類即可直接使用父類已經(jīng)封裝好的方法,也可根據(jù)需求,封裝子類特有的屬性和方法
  • 子類也叫派生類,父類也叫基類
  • 繼承的傳遞性:C類繼承B類,B類又繼承A類,則C類具有B類和A類所有屬性和方法

方法的重寫

  • 如果父類方法不能滿足子類需求,則子類可以重寫父類的方法,重新實(shí)現(xiàn)邏輯;執(zhí)行時(shí),只會(huì)調(diào)用子類重寫的方法,不會(huì)調(diào)用父類方法
  • 如果父類方法只能滿足子類一部分需求,則可以在重寫中使用super().父類方法來(lái)調(diào)用父類的方法,然后再補(bǔ)充另外一部分需求
  • 注:super是一個(gè)特殊的類,super()就是使用super類創(chuàng)建出來(lái)的對(duì)象
  • 另外一種調(diào)用方法,在Python2.x中可以使用,3.x中暫時(shí)還支持這種方式,但不推薦使用,因?yàn)楦割惏l(fā)生變化,方法調(diào)用位置的類名同樣需要修改

父類名.方法(self)

父類的私有屬性和私有方法

  • 子類不能在自己方法內(nèi)部直接調(diào)用父類私有屬性和私有方法
  • 子類對(duì)象可以通過父類的共有方法間接訪問到父類私有方法和私有屬性

多繼承

  • 子類可以擁有多個(gè)父類,并具有所有父類的屬性和方法
  • 語(yǔ)法:

class 子類名(父類1,父類2...):
?pass

  • 注意:如果繼承的父類中有同名方法,則系統(tǒng)會(huì)根據(jù)MRO順序調(diào)用方法,另外盡量避免繼承的父類中有同名方法
  • MRO---方法搜索順序,Python內(nèi)置了屬性__mro__可以查看方法的搜索順序,其按照每個(gè)類順序?qū)ふ?,有該方法就?zhí)行,不再尋找;如果沒有找到,會(huì)報(bào)錯(cuò)

print(方法名.__mro__)

  • 該方法返回元組

新式類和舊式類

新式類都是以O(shè)bject為基類,推薦使用
經(jīng)典類不以O(shè)bject為基類,不推薦使用

  • 在Python2.x中,不指定繼承Object,則不會(huì)以O(shè)bject為基類
  • 在Python3.x中,默認(rèn)會(huì)繼承Object基類
  • 建議如果沒有父類,統(tǒng)一繼承自O(shè)bject類,這樣2.x和3.x中都能使用

多態(tài)

  • 多態(tài)以繼承和重寫父類方法為前提
  • 不同的子類對(duì)象調(diào)用相同的父類方法
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 父類與子類 在Java術(shù)語(yǔ)中,如果C1類擴(kuò)展自另一個(gè)類C2,我們稱C2為父類,也稱超類或基類,稱C1為子類,也稱次...
    Steven1997閱讀 1,322評(píng)論 1 2
  • 繼承是Java面向?qū)ο蟮囊环N表現(xiàn)。利用繼承可以創(chuàng)建公共屬性的父類,然后根據(jù)各個(gè)子類的不同特性創(chuàng)建各個(gè)不同屬性。 注...
    起個(gè)什么呢稱呢閱讀 1,117評(píng)論 0 1
  • 繼承和多態(tài) 1. 繼承的優(yōu)缺點(diǎn) 優(yōu)點(diǎn):(1)子類可以靈活地改變父類中的已有方法;(2)能夠最大限度的實(shí)現(xiàn)代碼重用。...
    MinoyJet閱讀 727評(píng)論 0 0
  • 今天我從手機(jī)上看了《哈利·波特與魔法石》這部電影讓我受益無(wú)窮,其中還讓我明白了許多道理。哈利·波特他這個(gè)人也很勇敢...
    馬藝棟閱讀 967評(píng)論 0 0
  • 心寬則路寬,人世間不如意的事,無(wú)非是對(duì)自己期望太高。能讓你如愿以償?shù)氖露己苌?。人生有得有失,?quán)衡利弊、踏實(shí)走好每一...
    海明LI閱讀 247評(píng)論 0 0

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