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

2021-07-10 15:06

阅读:548

标签:super   wechat   abs   多继承   str   --   html   父类   abc   

# 单继承 *****
    # 先抽象再继承,几个类之间的相同代码抽象出来,成为父类
    # 子类自己没有的名字,就可以使用父类的方法和属性
    # 如果子类自己有,一定是先用自己的
    # 在类中使用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

 

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

标签:super   wechat   abs   多继承   str   --   html   父类   abc   

原文地址:https://www.cnblogs.com/xiangrikuidebuluo/p/9561294.html


评论


亲,登录后才可以留言!