1. 程式人生 > 其它 >Python類(4)類的繼承

Python類(4)類的繼承

技術標籤:Python基礎python繼承

Python類(4)類的繼承

類的繼承格式

class 子類(基類):
	pass

基類(父類): 被繼承者(先輩)
子類:繼承者(後輩)

如果沒有基類,就用object
比如,我們前面幾節課的內容,都是直接繼承自object這個基類的.理論上,所有的類都是object的子類
可以用__base__屬性檢視子類的父類
檢視子類的父類

class 子類(object):
	pass

print(子類.__base__)

輸出:
在這裡插入圖片描述

檢視子類的父類的第二個示例

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

輸出:
在這裡插入圖片描述

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

class 子類(父類,母類):
	pass

這裡只是舉了個例子,有兩個父類,也可以是三個,四個,五個
這裡不再舉例了,有興趣的同學可以自行嘗試

繼承了什麼

繼承的目的有2個:

  • 繼往
  • 開來

繼往:就是原來有的,我都有
開來:就是原來沒有的,我也可以有

繼承的基本使用:

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

    def move(self):
        print("我可以移動"
) def swim(self): print("游泳我也會哦") class B(A): def __init__(self): super().__init__() self.age = 10 def jump(self): print("我還可以跳") def move(self): print("我的移動是飛哦") b = B() print(b.name) print(b.age) b.move() b.
jump() b.swim()

在這裡插入圖片描述

程式碼分析:
A:是基類
B:是子類

A有一個例項屬性name, 兩個例項方法move(), swim()
B繼承自A,自建了一個例項屬性age, 一個例項方法jump(),改寫了move()方法

從效果圖可以看出來
b有name屬性, 有age屬笥
b的jump(),swim()方法
但是move()方法與A中自的那個move()方法是不一樣的.這個過程稱為重寫(過載)

總結

  1. 子類繼承父類時,父類可以有一個或多個
  2. 子類繼承父類時,會把父類的例項屬性,例項方法都繼承過來
  3. 子類如果對父類的行為(方法)不習慣,可以選擇改良(重寫)
  4. 子類如果有建構函式,父類的建構函式將不會被自動呼叫,需要手動呼叫super().init()
  5. 如果子類有多個父類,在使用super().init()方法呼叫父類的建構函式時,會按照父類的順序呼叫第一個有建構函式的父類的建構函式.
  6. 子類可以對父類沒有想到的東西加以新增(子類可以新增屬性,方法)