设计模式-抽象类
借助python中的abc模块来实现抽象类
抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化
类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性
抽象类中的抽象方法必须在继承的子类中全部重写
from abc import ABCMeta, abstractclassmethod
# 定义一个接口,要求下面的Alipay和 WechatPay 必须实现pay且实现pay和接口定义的参数,返回的类型保持一致
class Pay(metaclass=ABCMeta):
@abstractclassmethod
def pay(self, money):
pass
# 称Alipay实现了pay接口
class AliPay(Pay):
def pay(self, money):
pass
class WechatPay(Pay):
def pay(self, money):
pass
p = AliPay()
p.pay(10)