1、什麼是多型:
它是指同一種事物的多種形態,在程式中用繼承可以表現出多型。
但在python中推崇鴨子型別。它不但解藕合,且能建立標準。
2、為什麼要用多型:
用基類建立一套統一的規則,強制子類去遵行(用抽象類去實現)這樣可以不用考慮具體型別的前提下而直接使用物件下的方法。
3、如何使用:
來看下面的一段**。
class animal:
def run(self):
pass
def bark(self):
pass
class cat(animal):
def jiao(self):
print('喵喵喵')
class dog(animal):
def speak(self):
print('汪汪汪')
class pig(animal):
def han(self):
print('哼哼哼')
c=cat()
d=dog()
p=pig()
#呼叫不同具體動物叫的時候就用不同實現方法。
c.jiao()
d.speak()
p.han()
如上**在呼叫不同具體動物叫的時候就用不同的呼叫方法。這樣子不態好,很亂,沒有規範。我們就要用多型來給它弄個規,凡是動物叫,就都用bark()來呼叫。這樣就很清楚明了。
import abc
class animal(metaclass=abc.abcmeta):
@abc.abstractclassmethod
def bark(self):
pass
@abc.abstractclassmethod
def drink(self):
pass
class cat(animal):
def drink(self):
print('cat is dering')
def bark(self):
print('cat is barking')
class dog(animal):
def drink(self):
print('dog is dering')
def bark(self):
print('dog is barking')
c=cat()
d=dog()
c.bark()
d.bark()
python物件導向三大特性之封裝
封裝 類裡面不光有屬性還有方法。這種將屬性通過方法直接在類內部操作的形式就叫做封裝。把很多資料封裝到 個物件中,把固定功能的 封裝到 個 塊,函式,物件,打包成模組.這都屬於封裝的思想.封裝操作可以對受保護的成員進行功能開放的控制,達到保護資料不被非法訪問的目的。當然,方法也可以私有封裝,但是一般都...
python物件導向三大特性之封裝
封裝是物件導向三大特性最核心的乙個特性 封裝 整合 1 如何隱藏 在屬性名前加 字首,就會實現乙個對外隱藏屬性效果 該隱藏需要注意的問題 i 在類外部無法直接訪問雙下滑線開頭的屬性,但知道了類名和屬性名就可以拼出名字 類名 屬性,然後就可以訪問了,如foo.a n,所以說這種操作並沒有嚴格意義上地限...
Python物件導向三大特性之封裝
面向函式的程式設計和物件導向程式設計對比 通過函式和物件的方法實現同樣的功能,看起來是面向函式的程式設計比較簡單 假如是連線資料庫的增,刪,改,查操作使用物件導向的方法 更加簡單 vim day7 3.py usr bin python coding utf 8 def fetch 連線資料庫,ho...