# ### 多态 (不同的对象) ''' 不同的子类对象,调用相同的父类方法,产生不同的执行结果 特征: 继承 重写 好处: 在不改变代码的前提下,实现代码的复用,和不同的效果. ''' 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