使用面向对象思想实现乐器弹奏

题目

乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。定义乐器类Instrument,包括方法make_sound()。定义乐器类的子类:二胡Erhu、钢琴Piano和小提琴Violin,定义一个函数可以弹奏各种乐器play(instrument),测试给乐手不同的乐器让他弹奏。

代码

class Instrument():
    def make_sound(self):
        pass

class Erhu(Instrument):
    def make_sound(self):
        print("二胡在弹奏")

class Violin(Instrument):
    def make_sound(self):
        print("小提琴在弹奏")

class Piano(Instrument):
    def make_sound(self):
        print("钢琴在弹奏")

def play(instrument):
    instrument.make_sound()

erhu=Erhu()
piano=Piano()
violin=Violin()

play(erhu)
play(piano)
play(violin)


运行效果

二胡在弹奏
钢琴在弹奏
小提琴在弹奏
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,根据你的要求,下面是一个使用面向对象思想实现乐器弹奏的例子。我们定义了一个乐手类 `Musician`,它可以弹奏同的乐器并发出不同声音。包括盖胡琴(Gaohu)和琵琶(Pipa)两种乐器。 ```python class Musician: def play(self, instrument): instrument.make_sound() class Instrument: def make_sound(self): pass class Gaohu(Instrument): def make_sound(self): print("盖胡琴发出声音") class Pipa(Instrument): def make_sound(self): print("琵琶发出声音") # 创建一个乐手对象 musician = Musician() # 创建一个盖胡琴对象并让乐手弹奏 gaohu = Gaohu() musician.play(gaohu) # 创建一个琵琶对象并让乐手弹奏 pipa = Pipa() musician.play(pipa) ``` 在这个例子中,我们创建了一个乐手类 `Musician`,它有一个 `play` 方法,可以接收一个乐器参数,并调用乐器的 `make_sound` 方法。 然后,我们定义了一个乐器类 `Instrument`,它有一个 `make_sound` 方法。这个方法在基类中是空的,因为每个具体的乐器类都会实现自己的 `make_sound` 方法。 我们还定义了两个具体的乐器类,`Gaohu` 和 `Pipa`。它们分别继承自乐器类 `Instrument`,并实现自己的 `make_sound` 方法。 在主程序中,我们创建了一个乐手对象 `musician`。然后,我们分别创建了一个盖胡琴对象 `gaohu` 和一个琵琶对象 `pipa`。最后,让乐手通过调用 `play` 方法来弹奏这两个乐器。 当程序运行时,会输出盖胡琴和琵琶分别发出的声音。 希望这个例子对你有帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值