python_进阶_13


多态

==不同的子类对象调用相同的父类方法, 产生不同的执行结果==

继承重写父类方法为前提

class Dog(object):
    """object是所有类的基类"""
    def __init__(self,name):
        self.name = name
    def game(self):
        print("%s 蹦蹦跳跳的玩耍..." % self.name)

class XiaoTianDog(Dog):
    def game(self):
        print("%s 飞到天上去玩耍..." % self.name)

class Person(object):
    def __init__(self,name):
        self.name = name
    def game_with_dog(self,dog):
        print("%s 和 %s 快乐的玩耍..." %(self.name,dog.name))

        # 让狗玩耍
        # TODO 让不同的子类对象调用相同的方法
        dog.game()

# 1. 创建一个狗对象
# TODO 让不同的子类对象(不同的狗)调用相同的方法
# wangcai = Dog("旺财")
wangcai = XiaoTianDog("飞天旺财")
# 2. 创建一个小明对象
xiaoming = Person("小明")
# 3. 让小明调用和狗玩的方法
xiaoming.game_with_dog(wangcai)

输出为


文章作者: 张忠楠
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 张忠楠 !
评论
 上一篇
python_进阶_14 python_进阶_14
类方法 ==在python中, 一切皆是对象, 包括类== 在类方法内部可以直接访问类属性或者调用其它的类方法 语法如下 @classmethod def 类方法名(cls): pass演练 class Tool(obje
2020-04-28
下一篇 
python_进阶_12 python_进阶_12
继承 概念: 子类拥有父类的所有方法和属性 单继承class Animal: def eat(self): print("吃") def drink(self): print("喝")
2020-04-27
  目录