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)

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

猜你喜欢

转载自www.cnblogs.com/farion/p/9907983.html