1. 程式人生 > >python學習筆記(31) 介面類和抽象類

python學習筆記(31) 介面類和抽象類

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)

 

#################################################