zoukankan      html  css  js  c++  java
  • day15-接口类

    # 一、接口类的作用是规范它的子类,跟后面学习的接口没关系。
    from abc import abstractmethod,ABCMeta
    class Pay(metaclass=ABCMeta):  #metaclass是元类。
        @abstractmethod
        def pay(self):pass     #pass意思是没代码。
    #接口类:规范后面的子类,当子类没有pay方法时,抛出提示:
    # Can't instantiate abstract class Apple with abstract methods pay 无法使用抽象方法pay来实例化抽象类apple,意思就是没有pay方法。
    class Wechat(Pay):
        def pay(self,money):
            print('微信支付了%s元'%money)
    
    class Ali(Pay):
        def pay(self,money):
            print('支付宝支付了%s元'%money)
    
    class Apple(Pay):
        def pppppppppppppppppppp(self,money):
            print('苹果支付了%s元'%money)
    
    def P(a,b):    #统一接口,方便用户。
        a.pay(b)   #多态,同一类事物有多种形态。
    
    w = Wechat()
    a = Ali()
    ap = Apple()
    # w.pay(100)
    # a.pay(200)
    # ap.pay(300)
    P(w,100)
    P(a,200)
    P(ap,200)
    
    
    # 二、接口类的多继承:是面向对象的思想,符合接口类的接口隔离原则:
    # 使用多个专门的接口(走路、游泳、飞分为三个专门的类),而不是使用单一的总接口(一个类有走路、游泳、飞三个方法),即客户端只需要有用的接口,不需要多余的。
    # 老虎tiger 会走路、游泳
    # 老鹰eagle 会走路、飞
    # 天鹅swan  会走路、游泳、飞
    from abc import abstractmethod,ABCMeta
    class Walk(metaclass=ABCMeta):
        @abstractmethod
        def walk(self):pass
    
    class Swim(metaclass=ABCMeta):
        @abstractmethod
        def swim(self):pass
    
    class Fly(metaclass=ABCMeta):
        @abstractmethod
        def fly(self):pass
    
    class Tiger(Walk,Swim):
        def walk(self):pass
        def swim(self):pass
    
    class Eagle(Walk,Swim):
        def walk(self):pass
        def fly(self):pass
    
    class Swan(Walk,Swim):
        def walk(self):pass
        def swim(self): pass
        def fly(self):pass
  • 相关阅读:
    739. Daily Temperatures
    556. Next Greater Element III
    1078. Occurrences After Bigram
    1053. Previous Permutation With One Swap
    565. Array Nesting
    1052. Grumpy Bookstore Owner
    1051. Height Checker
    数据库入门及SQL基本语法
    ISCSI的概念
    配置一个IP SAN 存储服务器
  • 原文地址:https://www.cnblogs.com/python-daxiong/p/11127905.html
Copyright © 2011-2022 走看看