一、抽象类(接口)
抽象类的子类必须实现父类的所有抽象方法
from abc import ABCMeta, abstractmethod
# 抽象类、抽象方法、必须实现
class Payment(metaclass=ABCMeta):
@abstractmethod
def pay(self, money):
pass
class Alipay(Payment):
def pay(self, money):
print('alipay Payment')
二、面向对象设计原则
1、开放封闭原则
2、里氏替换原则
3、依赖倒置原则:底层代码不能调用高层代码, 可以使用接口约束高层代码实现的一致性
4、接口隔离原则:使用多个专门接口,而不使用单一的接口,即客户端不应该依赖那些它不需要的接口,例:Animal类有walk、fly、swim,Tiger类若继承Animal类则需要实现其自身不需要的接口,如fly、swim,因此,此时应将Animal类拆分
5、单一职责原则,不要存在多于一个导致类变更的原因,简单的说,即一个类只负责一项职责