# ### 多态 (不同的对象)
'''
不同的子类对象,调用相同的父类方法,产生不同的执行结果
特征: 继承 重写
好处: 在不改变代码的前提下,实现代码的复用,和不同的效果.
'''
class Soldier():
# 攻击
def attack(self):
pass
# 撤退
def back(self):
pass
# 陆
class Army(Soldier):
def attack(self):
print("[陆]开坦克以迅雷不及掩耳之势占领敌方的高地")
def back(self):
print("[陆]学会了忍者的招数,瞬间逼出闪现")
# 海
class Navy(Soldier):
def attack(self):
print("[海]用鱼雷轰炸敌方的潜水艇和夹板")
def back(self):
print("[海]立即跳海,下海喂鱼")
# 空
class Airforce(Soldier):
def attack(self):
print("[空]把二营长的那个意大利炮给我端上来,我要突突他")
def back(self):
print("[空]弃机跳伞,落地成盒")
# 实例化各个兵种,各就位准备
obj_army = Army()
obj_navy = Navy()
obj_airforce = Airforce()
lst = [obj_army,obj_navy,obj_airforce]
# 等待将军下达命令
strvar = """
你好将军,下面是您的操作按钮;
1.全体攻击
2.全体撤退
3.陆出击,其他人撤退
4.退出程序
"""
sign = True
while sign:
print(strvar)
num = input("将军请下令:")
for i in lst:
if num == "1":
i.attack()
elif num == "2":
i.back()
elif num == "3":
if isinstance(i,Army):
i.attack()
else:
i.back()
elif num.upper() == "Q":
sign = False
break
else:
print("风太大,我听不到")
break
# ### 多态 (不同的对象)
'''
不同的子类对象,调用相同的父类方法,产生不同的