码迷,mamicode.com
首页 > 其他好文 > 详细

接口类的多继承

时间:2018-10-02 20:44:15      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:cme   场景   需要   必须   例子   pass   style   pre   客户   

# 动物园


# 老虎 tiger 走路 游泳
# 天鹅 swan 走路 游泳 飞
# 老鹰 oldying 飞 走路


from abc import abstractmethod, ABCMeta

# 接口的多继承
# 接口类
class Swim_Animal(metaclass=ABCMeta):   # 游泳
    @abstractmethod
    def swim(self): # 被继承的子类必须实现,如果子类不实现,那子类在实例化时将会报错
        pass

class Walk_Animal(metaclass=ABCMeta):   #
    @abstractmethod
    def walk(self):
        pass

class Fly_Animal(metaclass=ABCMeta):    #
    @abstractmethod
    def fly(self):
        pass

class Tiger(Walk_Animal, Swim_Animal):  # 老虎类,继承走、游泳接口类,则必须实现走与游泳接口,否则实例化时报错
    def walk(self):
        pass

    def swim(self):
        pass

class Oldying(Fly_Animal, Walk_Animal):
    pass

class Swan(Swim_Animal, Walk_Animal, Fly_Animal):
    pass


# 接口隔离原则:使用多个专门的接口,而不使用单一的总接口。即客户端不应该依赖那些不需要的接口
    # 上面的例子刚好满足接口隔离原则

# 接口类的使用场景:实现一个类时,想要规范这个类中哪些函数是必须要实现的,如果不实现在实例化时就进行报错,这种场景下可以用接口类进行规范
    # 将类必须要实现的方法,写在一个接口类中,然后那个类去继承这个接口,如果那个类没有实现接口规定的方法,则实例化时报错

 

接口类的多继承

标签:cme   场景   需要   必须   例子   pass   style   pre   客户   

原文地址:https://www.cnblogs.com/whylinux/p/9737386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!