1. 程式人生 > >Python--day25--面向物件之多型

Python--day25--面向物件之多型

多型(Python天生支援多型)

多型指的是一類事物有多種形態

動物有多種形態:人,狗,豬

 1 import abc
 2 class Animal(metaclass=abc.ABCMeta): #同一類事物:動物
 3     @abc.abstractmethod
 4     def talk(self):
 5         pass
 6 
 7 class People(Animal): #動物的形態之一:人
 8     def talk(self):
 9         print('say hello')
10 
11 class Dog(Animal): #
動物的形態之二:狗 12 def talk(self): 13 print('say wangwang') 14 15 class Pig(Animal): #動物的形態之三:豬 16 def talk(self): 17 print('say aoao')

檔案有多種形態:文字檔案,可執行檔案

import abc
class File(metaclass=abc.ABCMeta): #同一類事物:檔案
    @abc.abstractmethod
    def click(self):
        pass

class
Text(File): #檔案的形態之一:文字檔案 def click(self): print('open file') class ExeFile(File): #檔案的形態之二:可執行檔案 def click(self): print('execute file')

多型的表現形式:

鴨子型別:(Python中有鴨子型別,而其他語言如Java沒有,所以Python不重尚通過繼承對程式碼進行規範,Python重尚鴨子型別,就像list和tuple這兩個這麼相似的資料型別都沒有用繼承---可作為面試時面試官叫你解釋一下設計模式介面類的回答)

例子的程式碼中List和Tuple就是鴨子型別:

ps:python不重尚多型