继承

# 子类自动拥有父类中除了私有内容外的其他所有内容
# 王思聪(熊猫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里的

  

posted @ 2018-12-17 20:42  =-=-  阅读(91)  评论(0编辑  收藏  举报