- 关于什么是多态,请参考面向对象简介
- 所谓动态绑定,指的是当调用一个子类实例的父类方法时,系统能够自动识别和调用【该子类自身对父类方法的实现】;
- 此处带来案例,FightingWlolf
@案例:FightingWlolf,需求说明:
- 为帝国创建一支军队,包含骑兵、弓箭手、法师
- 所有兵种都能够进攻和防守,但形态各异
- 通过输入将令,控制每个兵种的攻守细节
所有兵种都能攻守且形态各异,我们为其定义共同父类——战士类Soldier
class Soldier:
# 进攻方法
def attack(self):
print("士兵进攻")
pass
# 防守方法
def defend(self):
print("士兵防守")
pass
接下来定义各种不同形态的子类(多态),对攻防细节做不同实现
# 骑兵类
class Calvary(Soldier):
def attack(self):
print("用劳资的铁蹄碾压你")
def defend(self):
print("骑兵防守")
# 弓箭手类
class Archer(Soldier):
def attack(self):