# Python類(lèi)(4)類(lèi)的繼承

Python類(lèi)(4)類(lèi)的繼承

類(lèi)的繼承格式

class 子類(lèi)(基類(lèi)):
    pass

基類(lèi)(父類(lèi)): 被繼承者(先輩)
子類(lèi):繼承者(后輩)

如果沒(méi)有基類(lèi),就用object
比如,我們前面幾節(jié)課的內(nèi)容,都是直接繼承自object這個(gè)基類(lèi)的.理論上,所有的類(lèi)都是object的子類(lèi)
可以用base屬性查看子類(lèi)的父類(lèi)
查看子類(lèi)的父類(lèi)

class 子類(lèi)(object):
    pass

print(子類(lèi).__base__)

輸出:


在這里插入圖片描述

查看子類(lèi)的父類(lèi)的第二個(gè)示例

class 子類(lèi)(object):
    pass
class 孫子類(lèi)(子類(lèi)):
    pass
print(孫子類(lèi).__base__)

輸出:


在這里插入圖片描述

除了這樣的單繼承之外,還可以多繼承
多繼承寫(xiě)法:

class 子類(lèi)(父類(lèi),母類(lèi)):
    pass

這里只是舉了個(gè)例子,有兩個(gè)父類(lèi),也可以是三個(gè),四個(gè),五個(gè)
這里不再舉例了,有興趣的同學(xué)可以自行嘗試

繼承了什么

繼承的目的有2個(gè):

  • 繼往
  • 開(kāi)來(lái)

繼往:就是原來(lái)有的,我都有
開(kāi)來(lái):就是原來(lái)沒(méi)有的,我也可以有

繼承的基本使用:

class A(object):
    def __init__(self):
        self.name = "張三"

    def move(self):
        print("我可以移動(dòng)")

    def swim(self):
        print("游泳我也會(huì)哦")

class B(A):
    def __init__(self):
        super().__init__()
        self.age = 10

    def jump(self):
        print("我還可以跳")

    def move(self):
        print("我的移動(dòng)是飛哦")


b = B()
print(b.name)
print(b.age)
b.move()
b.jump()
b.swim()
在這里插入圖片描述

代碼分析:
A:是基類(lèi)
B:是子類(lèi)

A有一個(gè)實(shí)例屬性name, 兩個(gè)實(shí)例方法move(), swim()
B繼承自A,自建了一個(gè)實(shí)例屬性age, 一個(gè)實(shí)例方法jump(),改寫(xiě)了move()方法

從效果圖可以看出來(lái)
b有name屬性, 有age屬笥
b的jump(),swim()方法
但是move()方法與A中自的那個(gè)move()方法是不一樣的.這個(gè)過(guò)程稱(chēng)為重寫(xiě)(重載)

總結(jié)

  1. 子類(lèi)繼承父類(lèi)時(shí),父類(lèi)可以有一個(gè)或多個(gè)
  2. 子類(lèi)繼承父類(lèi)時(shí),會(huì)把父類(lèi)的實(shí)例屬性,實(shí)例方法都繼承過(guò)來(lái)
  3. 子類(lèi)如果對(duì)父類(lèi)的行為(方法)不習(xí)慣,可以選擇改良(重寫(xiě))
  4. 子類(lèi)如果有構(gòu)造函數(shù),父類(lèi)的構(gòu)造函數(shù)將不會(huì)被自動(dòng)調(diào)用,需要手動(dòng)調(diào)用super().init()
  5. 如果子類(lèi)有多個(gè)父類(lèi),在使用super().init()方法調(diào)用父類(lèi)的構(gòu)造函數(shù)時(shí),會(huì)按照父類(lèi)的順序調(diào)用第一個(gè)有構(gòu)造函數(shù)的父類(lèi)的構(gòu)造函數(shù).
  6. 子類(lèi)可以對(duì)父類(lèi)沒(méi)有想到的東西加以添加(子類(lèi)可以新增屬性,方法)
?著作權(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)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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