python -------继承 接口类

# 单继承 *****
    # 先抽象再继承,几个类之间的相同代码抽象出来,成为父类
    # 子类自己没有的名字,就可以使用父类的方法和属性
    # 如果子类自己有,一定是先用自己的
    # 在类中使用self的时候,一定要看清楚self指向谁
# 多继承 ***
    # 新式类和经典类:
        # 多继承寻找名字的顺序 : 新式类广度优先,经典类深度优先
        # 新式类中 有一个类名.mro方法,查看广度优先的继承顺序
        # python3中 有一个super方法,根据广度优先的继承顺序查找上一个类

-----------------------------------接口类------------------------------------------------------------

# java : 面向对象编程
# 设计模式   —— 接口
# 接口类 : python原生不支持
# 抽象类 : python原生支持的
from abc import abstractmethod,ABCMeta
class Payment(metaclass=ABCMeta):  # 元类 默认的元类 type
#metaclass =ABCMeta 意味着下面要写一个规范类。
    @abstractmethod
    def pay(self,money):pass   # 没有实现这个方法
# 规范 :接口类或者抽象类都可以
# 接口类 支持多继承,接口类中的所有的方法都必须不能实现 —— java
# 抽象类 不支持多继承,抽象类中方法可以有一些代码的实现 —— java
class Wechat(Payment):
    def pay(self,money):
        print('已经用微信支付了%s元'%money)

class Alipay(Payment):
    def pay(self,money):
        print('已经用支付宝支付了%s元' % money)

class Applepay(Payment):
    def pay(self,money):
        print('已经用applepay支付了%s元' % money)

def pay(pay_obj,money):  # 统一支付入口
    pay_obj.pay(money)

# wechat = Wechat()
# ali = Alipay()
app = Applepay()
# wechat.pay(100)
# ali.pay(200)

面向对象资料地址

https://www.cnblogs.com/Eva-J/articles/7293890.html

猜你喜欢

转载自www.cnblogs.com/xiangrikuidebuluo/p/9561294.html