利用继承设计两个类:Weapon和 Tank Weapon具有重量、火力、价格、抗打击力等数据成员 Tank除了具有Weapon所有成员外,还具有里程耗油量、移动速度、健康程度等 当Tank受到打击时,会受到损伤,健康程度减少量=打击力度/抗打击力 Tank具有方法BeHit,参数为受到打击的力度 Tank具有方法ShowState,显示数据成员的数值 模拟以下过程:生成一个Tank对象,具有初始值:重量为2000,火力800,价格500000,抗打击力600 ,健康程度100。对象受到火力为20000的打击。 显示受打击对象的状态。
时间: 2024-02-19 18:03:55 浏览: 152
继承设计练习
好的,根据您的要求,我为您编写了以下代码:
```python
class Weapon:
def __init__(self, weight, firepower, price, anti_strikes):
self.weight = weight
self.firepower = firepower
self.price = price
self.anti_strikes = anti_strikes
class Tank(Weapon):
def __init__(self, weight, firepower, price, anti_strikes, mileage, oil_consumption, speed, health):
super().__init__(weight, firepower, price, anti_strikes)
self.mileage = mileage
self.oil_consumption = oil_consumption
self.speed = speed
self.health = health
def BeHit(self, strike_power):
self.health -= strike_power / self.anti_strikes
def ShowState(self):
print("重量:", self.weight)
print("火力:", self.firepower)
print("价格:", self.price)
print("抗打击力:", self.anti_strikes)
print("里程:", self.mileage)
print("耗油量:", self.oil_consumption)
print("移动速度:", self.speed)
print("健康程度:", self.health)
# 生成一个Tank对象
tank = Tank(2000, 800, 500000, 600, 0, 0, 0, 100)
# 受到火力为20000的打击
tank.BeHit(20000)
# 显示状态
tank.ShowState()
```
输出结果为:
```
重量: 2000
火力: 800
价格: 500000
抗打击力: 600
里程: 0
耗油量: 0
移动速度: 0
健康程度: 66.66666666666667
```
其中,健康程度减少了(20000/600)的值,即33.33333。
阅读全文