1. 程式人生 > 其它 >類的多型與多型性

類的多型與多型性

技術標籤:pythonpython

一.多型

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()

=============================================