定义:不同的子类对象调用相同的父类方法,产生不同的执行结果
多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承)
多态是调用方法的技巧,不会影响到类的内部设计
关键点:继承 改写(重载)
# 定义狗类
class Dog:
def work(self):
print("狗是人类的好朋友")
# 定义警犬类
class ArmyDog(Dog):
def work(self):
print('追击敌人')
# 定义缉毒犬类
class DrugDog(Dog):
def work(self):
print('追查毒品')
# 定义二哈类
class HaDog(Dog):
def work(self):
print("欢乐的破坏")
#定义人类
class Person:
def with_dog(self, dog): # 只要能接收父类对象,就能接收子类对象
dog.work() # 只要父类对象能工作,子类对象就能工作。并且不同子类会产生不同的执行效果。
p = Person()
p.with_dog(ArmyDog())
p.with_dog(DrugDog())
p.with_dog(HaDog())