# ### 继承 : 一个类除了拥有自身的属性方法之外,还拥有另外一个类的属性和方法
'''
继承: 1.单继承 2.多继承
子类:一个类继承了另外一个类,那么这个类是子类,(衍生类)
父类:一个类继承了另外一个类,被继承的那个类是父类 (超类,基类)
object 是所有的类的父类
'''
class Human():
def eat(self):
print("远古人类打猎,吃猎物")
def sleep(self):
print("远古人类吃饱了就睡觉")
def __beat_doudou(self):
print("远古人类起来先打豆豆,在打猎")
# 把要继承的类放到class 定义类的这个括号里面写
# (1) 子类可以调用父类的公有成员(方法,属性)
class Man(Human):
pass
# 实例化对象
obj = Man()
obj.eat()
# (2) 子类不可以调用父类私有成员(方法,属性)
class Woman(Human):
def myskill(self):
# 调用父类公有方法
self.eat()
# 不能够在子类里面调用父类私有方法
# self.__beat_doudou()
obj = Woman()
# obj.__beat_doudou() 私有的没法再类外调用
obj.myskill()
# (3) 子类可以改造父类的公有方法
'''
子父继承之后,如果调用的成员,
子类里面有,优先调用子类的
子类里面没有,就调用父类
'''
class Children(Human):
# 对eat方法进行改写
def eat(self):
print("小孩下生只会喝奶奶")
obj = Children()
obj.eat()