# 子类自动拥有父类中除了私有内容外的其他所有内容
# 王思聪(熊猫TV) -> 王健林(年龄)
# 继承目的: 对父类进行扩展
# class Foo:
# def getMoney(self):
# print("拿钱")
#
#
# class Bar(Foo):
# pass
#
#
# b = Bar()
# b.getMoney() # 此时调用的是父类中的方法
# 当出现xxx是一种yyy类型的东西. 可以使用继承关系
# 猫是一种动物
# class Animal:
# def dong(self):
# print("动物会动, 顾雍")
#
# class Cat(Animal): # 子类其实是对父类的一种扩展
# def catchMouse(self):
# print("猫很皮, 抓老鼠")
#
# # c = Cat()
# # c.dong()
# # c.catchMouse()
#
# a = Animal() # 父类的对象不能执行子类中的功能
# a.dong()
# a.catchMouse() # 创建的是动物. 动物不能执行抓老鼠
# class Animal:
# def dong(self):
# print("动物会动, 顾雍")
#
# class Cat(Animal): # 子类其实是对父类的一种扩展
# def dong(self): # 子类中写了和父类一模一样的方法. 这个叫方法的覆盖, 重写
# print("猫上蹿下跳")
#
# def catchMouse(self):
# print("猫很皮, 抓老鼠")
#
# c = Cat() # 创建的是猫.
# c.dong() # 类中的方法的查询顺序. 先找自己, 然后再找父类
# python支持多继承
class Foo1:
def getMoney(self):
print('给你个大嘴巴子')
def play(self):
print("玩儿")
class Foo2:
def getMoney(self):
print('给多点儿')
class Bar(Foo1, Foo2): # 离当前类最近的是亲爹, 后面的是干爹.
pass
b = Bar() # 就近原则, MRO的C3算法
b.getMoney() # Foo2里的