#tiger 走路 游泳
#swan 走路 游泳 飞
#oldying 走路 飞、
import abc
from abc import ABCMeta
class Swam_animal(metaclass=ABCMeta):
@abc.abstractmethod
def swam(self):
pass
class Fly_animal(metaclass=ABCMeta):
@abc.abstractmethod
def fly(self):
pass
class Walk_animal(metaclass=ABCMeta):
@abc.abstractmethod
def walk(self):
pass
class Tiger(Walk_animal,Swam_animal):
pass
class oldying(Fly_animal,Walk_animal):
pass
class swan(Walk_animal,Swam_animal,Fly_animal):
pass
#接口类的原则 接口隔离原则,应给有多个专用的接口,不使用单一的接口,客户端不依赖于那些不需要的接口
#抽象类只能被继承,不能被实例化
#抽象类一般都是单继承,实现的功能都是一样的,所以在父类中可以有一些简单的父类实现
#多继承的情况,由于功能比较 复杂,所以不容易抽象出相同的功能的具体的实现在写在父类中
#抽象类和接口类:面向对象开发规范
#python中没有接口类,Java中没有多继承
#python中自带多继承,所以用class实现了接口类
#python中支持抽象类,Java中所有的抽象类是单继承的,python中可以多继承,一般情况下是单继承
#但对于多继承,在Java中使用interface来解决多继承的规范问题