(1)编写乐器类 (Instrument),包含品牌 (brand) 、价格 (price) 两个属性,相应的 SET 以及 GET 方法,重载的构造方法及演奏方法 (play) 。 (2)乐器类的子类分为:钢琴类(Piano)、小提琴类(Violin)。包含特有属性重量(weight) ,各种乐器的演奏方法不相同,重写父类的play()方法。 (3)编写一个测试类 InstrumentTest ,要求:编写方法 testPlay() ,对各种乐器进行演奏测试。要依据乐器的不同进行相应的演奏。在 main 方法中进行测试。
时间: 2023-05-19 11:02:28 浏览: 100
以下是乐器类及其子类的代码:
```python
class Instrument:
def __init__(self, brand, price):
self.brand = brand
self.price = price
def get_brand(self):
return self.brand
def set_brand(self, brand):
self.brand = brand
def get_price(self):
return self.price
def set_price(self, price):
self.price = price
def play(self):
pass
class Piano(Instrument):
def __init__(self, brand, price, weight):
super().__init__(brand, price)
self.weight = weight
def get_weight(self):
return self.weight
def set_weight(self, weight):
self.weight = weight
def play(self):
print("Playing the piano...")
class Violin(Instrument):
def __init__(self, brand, price, weight):
super().__init__(brand, price)
self.weight = weight
def get_weight(self):
return self.weight
def set_weight(self, weight):
self.weight = weight
def play(self):
print("Playing the violin...")
class InstrumentTest:
def test_play(self, instrument):
instrument.play()
if __name__ == '__main__':
piano = Piano("Yamaha", 5000, 300)
violin = Violin("Stradivarius", 10000, 200)
test = InstrumentTest()
test.test_play(piano)
test.test_play(violin)
```
在 main 方法中,我们创建了一个钢琴对象和一个小提琴对象,并分别传递给 InstrumentTest 类的 test_play 方法进行演奏测试。在 Piano 和 Violin 类中,我们重写了父类的 play 方法,以实现各自特有的演奏方法。
阅读全文