類的多型與多型性
阿新 • • 發佈:2021-01-02
一.多型
1."甚麼似"多型
多型是指一類事物有多種形態
2.例 : 動物的多種形態 : 人, 鴨子, 豬…
class Animal:
def speak(self):
print(f"開口說話")
#動物的形態之一:人
class People(Animal):
def speak(self):
print('呵呵呵')
#動物的形態之二:狗
class Duck(Animal):
def speak(self):
print('嘎嘎嘎' )
#動物的形態之三:豬
class Pig(Animal):
def speak(self):
print('咕咕咕')
Peo1 = People()
Duc1 = Duck()
Pig1 = Pig()
Peo1.speak() # 呵呵呵
Duc1.speak() # 嘎嘎嘎
Pig1.speak() # 咕咕咕
Peo1, Duc1, Pig1物件都屬於一個類
同一類的事物呼叫相同的方法, 但執行的效果卻不一樣, 這就是多型
3.例 : 檔案的多種形態 : 文字檔案, 可執行檔案
class File:
def click(self) :
pass
# 檔案的形態之一:文字檔案
class Text(File):
def click(self):
print('開啟檔案')
# 檔案的形態之二:可執行檔案
class ExeFile(File):
def click(self):
print('執行檔案')
T1 = Text()
E1 = ExeFile()
T1.click() # 開啟檔案
E1.click() # 執行檔案
T1, E1屬於同一個類, 但是他們呼叫同一個方法, 表現出來的效果卻不一樣
二.多型性
1.什麼是多型性
多型性指的是在不考慮物件的具體型別下, 直接使用物件的方法, 同一種呼叫方式, 執行的效果不一樣 (這就需要在設計時, 把物件的呼叫方法設計成形式統一的一種)
面向物件方法中一般是這樣表述多型性:向不同的物件傳送同一條訊息,不同的物件在接收時會產生不同的行為(即方法)。也就是說,每個物件可以用自己的方式去響應共同的訊息。所謂訊息,就是呼叫函式,不同的行為就是指不同的實現,即執行不同的函式
- 例 : 下課鈴響了(同一種呼叫方式), 老師執行下班的操作, 學生執行放學的操作(執行後的不同效果)
- 例 : 每月十五號(同一種呼叫方式), 老闆執行發工資操作, 員工執行收工資操作(執行後的不同效果)
- 例 : 白晚班交替(同一種呼叫方式), 白班執行下班的操作, 晚班執行上班的操作(執行後的不同效果)
2.多型性的使用
class Animal:
def speak(self):
print(f"開口說話")
# 動物的形態之一:人
class People(Animal):
def speak(self):
print('呵呵呵')
# 動物的形態之二:狗
class Duck(Animal):
def speak(self):
print('嘎嘎嘎')
# 動物的形態之三:豬
class Pig(Animal):
def speak(self):
print('咕咕咕')
Peo1 = People()
Duc1 = Duck()
Pig1 = Pig()
=============================================