多态发生的两个前提:
1、继承:多态一定是发生在子类和父类之间
2、重写:子类重写了父类的方法
编程案例:
"""
多态发生的两个前提:
1、继承:多态一定是发生在子类和父类之间
2、重写:子类重写了父类的方法
"""
# object 是面向对象中所有类的基类(父类)
class Dog(object):
def __init__(self,name):
self.name = name
def game(self):
print(f'普通的狗狗玩耍.....{self.name}')
class XiaoTianDog(Dog): # 继承Dog类
def game(self): # 方法重写
print(f'哮天犬在天上玩耍 {self.name}')
# 补充知识点:变量名的命名需要符合规则:由数字,字母,下划线_组成,不能以数字开头
class Person:
def __init__(self,pname):
self.pname = pname
# 定义人类和狗狗玩耍的方法
def game_with_dog(self,dog): # 传递dog对象,通过dog对象调用game方法
dog.game()
# 主程序:
wangcai = XiaoTianDog('旺财')
xiaohei = XiaoTianDog('小黑')
kele = XiaoTianDog('可乐')
ming = Person('明明')
ming.game_with_dog(wangcai)
ming.game_with_dog(xiaohei) # 多态:调用同一个方法,输出内容不一样
ming.game_with_dog(kele)
运行结果: