zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    PHP开发中bcscale timezone charset的设定
    [转]git图解(3):分支操作
    [转]Docker(三):Dockerfile 命令详解
    [转]php中 curl模拟post发送json并接收json
    [转]【docker】CMD ENTRYPOINT 区别
    [转]php模拟post提交请求,调用接口
    [转]【比特币钱包开发 五】新建钱包:生成子账号地址与路径
    [转]bitcoin API reference (JSON-RPC)
    flume原理
    Hive格式各种格式下不同压缩算法的比较
  • 原文地址:https://www.cnblogs.com/xiangrikuidebuluo/p/9561294.html
Copyright © 2011-2022 走看看