# 继承:父类又可以称为基类,超类;子类又可以称为派生类
# 继承的好处:
# a,提高了代码的复用性
# b:提高了代码的维护性
# c:让类与类之间产生了关系,是多态的前提
# class Animal:
# def __init__(self,name,sex):
# self.name=name
# self.sex=sex
# def eat(self,a):
# print("都得吃%s"%a)
# def drink(self):
# print("都得喝")
# class Dog(Animal):
# def __init__(self,name,sex,Varieties):
# # Animal.__init__(self,name,sex)
# super().__init__(name, sex)
# self.Varieties=Varieties
# def bite(self):
# print("咬人")
# def eat(self,a):
# # Animal.eat(1)
# super().eat(a)
# print("吃肉")
# class Cat(Animal):
# def Oestrus(self):
# print("发情")
# class Chicken(Animal):
# def lay(self):
# print("下蛋")
# d1=Dog("Tom","公","哈士奇")
# d1.eat("肉")
# print(d1.__dict__)
# 初识继承:
# 只执行本类的方法
# 只执行父类的方法.
# 既执行本类又执行父类的方法
# 父类名.方法名(参数)
# super().方法名(参数(self自动传值))
# 继承分为:单继承和多继承
# 类可以分为经典类和新式类,python3中全为新式类,而python2中加object的都为新式类,其他都是经典类
# 单继承中经典类和新式类执行相同方法顺序是相同的
# 多级承中:新式类执行顺序是广度优先,意思是一条路走到倒数第二级,判断,如果其他路能走到终点,则返回走另一条路.如果不能,则走到终点.
# 经典类中执行顺序是深度优先,意思是一条路走到底.
# class A:
# def func(self):
# print("A")
# class B(A):
# def func(self):
# print("B")
# class C(A):
# def func(self):
# print("C")
# class D(B):
# def func(self):
# print("D")
# class E(C):
# def func(self):
# print("E")
# class F(D):
# def func(self):
# print("F")
# class G(F,E):
# def func(self):
# print("G")
# g=G()
# g.func()
# print(G.mro())#.mro查询执行顺序