python學習筆記(31) 介面類和抽象類
阿新 • • 發佈:2018-11-05
from abc import abstractmethod.ABCmeta
class Payment(mataclass = ABCmeta): #元類 預設的元類 type
@abstractmethod
def pay(self,money):pass
介面類或者抽象類都是為了規範子類
python有抽象類,沒有介面類,只是一種概念
#介面類 預設多繼承,介面類中的方法都必須不能實現——源自java理念
#抽象類 不支援多繼承,抽象類中方法可以有一些程式碼實現——源自java理念
#一般情況下單繼承能實現的功能都是一樣的,所以在父類中可以有一些簡單的基礎實現
#多繼承的情況下由於功能比較複雜,所以不容易抽象出相同的功能的具體實現寫在父類中
#####################################################
class Wechat(Payment):
def pay(self, money):
print('已使用微信支付了%s元',%money)
class Alipay(Payment):
def pay(self, money):
print('已使用支付寶支付了%s元',%money)
def pay(pay_obj,money): #統一支付入口
pay_obj.pay(money)
wechat = Wechat()
ali = Alipay()
pay(wechat,1000)
#################################################