多态 (不同的对象)

# ### 多态 (不同的对象)
'''
不同的子类对象,调用相同的父类方法,产生不同的执行结果

特征: 继承 重写
好处: 在不改变代码的前提下,实现代码的复用,和不同的效果.
'''

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
			
			

  

猜你喜欢

转载自www.cnblogs.com/huangjiangyong/p/10920599.html
今日推荐