定义:不同的子类对象调用相同的父类方法,产生不同的执行结果
多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承)
多态是调用方法的技巧,不会影响到类的内部设计
关键点:继承 改写(重载)
# 定义狗类
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
(
)
)