Python 繼承

1、單繼承

單繼承
運(yùn)行結(jié)果

子類在繼承的時(shí)候,在定義類時(shí),小括號(hào)()中為父類的名字,父類的屬性、方法,會(huì)被繼承給子類。雖然子類沒(méi)有定義__init__方法,但是父類有,所以在子類繼承父類的時(shí)候這個(gè)方法就被繼承了,所以只要?jiǎng)?chuàng)建對(duì)象,就默認(rèn)執(zhí)行了那個(gè)繼承過(guò)來(lái)的__init__方法。

私有的屬性,不能通過(guò)對(duì)象直接訪問(wèn),但是可以通過(guò)方法訪問(wèn)

私有的方法,不能通過(guò)對(duì)象直接訪問(wèn)

私有的屬性、方法,不會(huì)被子類繼承,也不能被訪問(wèn)

一般情況下,私有的屬性、方法都是不對(duì)外公布的,往往用來(lái)做內(nèi)部的事情,起到安全的作用。

2、多繼承

Python不僅支持單繼承,同時(shí)還支持多繼承

多繼承
運(yùn)行結(jié)果

要想實(shí)現(xiàn)多繼承,只需在子類的小括號(hào)中寫多個(gè)父類即可。

當(dāng)父類中有同名方法時(shí)如何調(diào)用。

例:多個(gè)父類中有同名方法

多個(gè)父類中有同名方法
運(yùn)行結(jié)果

通過(guò)類對(duì)象的__mro__屬性能夠查看子類的繼承順序。

例:查看子類的繼承順序

查看子類的繼承順序
運(yùn)行結(jié)果

子類會(huì)按照繼承順序查找要調(diào)用的方法或者屬性,如果在一個(gè)類中找到了,就會(huì)停止向上尋找,如果始終沒(méi)有找到,則會(huì)拋出異常。

3、子類重寫父類方法

當(dāng)子類中定義了一個(gè)與父類方法名相同的方法時(shí),就會(huì)重寫父類方法。

例:子類重寫父類方法

子類重寫父類方法
運(yùn)行結(jié)果

4、子類調(diào)用父類方法

子類調(diào)用父類方法
運(yùn)行結(jié)果

子類如果需要調(diào)用父類方法,需要使用super()來(lái)指明調(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)容

  • 繼承 目標(biāo) 單繼承 多繼承 面向?qū)ο笕筇匦?封裝 根據(jù) 職責(zé) 將 屬性 和 方法 封裝 到一個(gè)抽象的 類 中 繼...
    ottox閱讀 208評(píng)論 0 0
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,673評(píng)論 1 32
  • 前言 這是黑馬Python培訓(xùn)教程面向?qū)ο筮@一章中的繼承(inheritance)部分。 什么是繼承(inheri...
    backup備份閱讀 900評(píng)論 0 3
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡(jiǎn)書還為我保存起的...
    Jenaral閱讀 3,144評(píng)論 2 9
  • 早春中美好的一天。 一夜安眠。沐浴更衣,豐盛的早餐。坐在灑滿陽(yáng)光的早餐室,神清氣爽、怡然恬淡。 泡一杯玫瑰花茶,取...
    嵐山微雨閱讀 547評(píng)論 2 4

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