1捌浩、單繼承
單繼承
運行結果
子類在繼承的時候放刨,在定義類時,小括號()中為父類的名字尸饺,父類的屬性进统、方法,會被繼承給子類浪听。雖然子類沒有定義__init__方法螟碎,但是父類有,所以在子類繼承父類的時候這個方法就被繼承了迹栓,所以只要創(chuàng)建對象掉分,就默認執(zhí)行了那個繼承過來的__init__方法。
私有的屬性克伊,不能通過對象直接訪問酥郭,但是可以通過方法訪問
私有的方法,不能通過對象直接訪問
私有的屬性答毫、方法褥民,不會被子類繼承,也不能被訪問
一般情況下洗搂,私有的屬性消返、方法都是不對外公布的载弄,往往用來做內部的事情,起到安全的作用撵颊。
2宇攻、多繼承
Python不僅支持單繼承,同時還支持多繼承
多繼承
運行結果
要想實現(xiàn)多繼承倡勇,只需在子類的小括號中寫多個父類即可逞刷。
當父類中有同名方法時如何調用。
例:多個父類中有同名方法
多個父類中有同名方法
運行結果
通過類對象的__mro__屬性能夠查看子類的繼承順序妻熊。
例:查看子類的繼承順序
查看子類的繼承順序
運行結果
子類會按照繼承順序查找要調用的方法或者屬性夸浅,如果在一個類中找到了,就會停止向上尋找扔役,如果始終沒有找到帆喇,則會拋出異常。
3亿胸、子類重寫父類方法
當子類中定義了一個與父類方法名相同的方法時坯钦,就會重寫父類方法。
例:子類重寫父類方法
子類重寫父類方法
運行結果
4侈玄、子類調用父類方法
子類調用父類方法
運行結果
子類如果需要調用父類方法婉刀,需要使用super()來指明調用父類方法。