用PHP实现# 定义乐器类class Instrument: def makeSound(self): pass # 抽象方法,需要在子类中实现# 定义二胡类class Erhu(Instrument): def makeSound(self): print("二胡演奏中...")# 定义钢琴类class Piano(Instrument): def makeSound(self): print("钢琴演奏中...")# 定义小提琴类class Violin(Instrument): def makeSound(self): print("小提琴演奏中...")# 定义乐手类class Musician: def play(self, instrument): instrument.makeSound()# 实例化乐手musician = Musician()# 弹奏二胡erhu = Erhu()musician.play(erhu)# 弹奏钢琴piano = Piano()musician.play(piano)# 弹奏小提琴violin = Violin()musician.play(violin)
时间: 2024-03-11 21:49:02 浏览: 51
Java语言程序设计实验之类与对象
5星 · 资源好评率100%
以下是用PHP实现的代码:
```php
<?php
// 定义乐器类
abstract class Instrument {
abstract function makeSound();
}
// 定义二胡类
class Erhu extends Instrument {
function makeSound() {
echo "二胡演奏中...\n";
}
}
// 定义钢琴类
class Piano extends Instrument {
function makeSound() {
echo "钢琴演奏中...\n";
}
}
// 定义小提琴类
class Violin extends Instrument {
function makeSound() {
echo "小提琴演奏中...\n";
}
}
// 定义乐手类
class Musician {
function play($instrument) {
$instrument->makeSound();
}
}
// 实例化乐手
$musician = new Musician();
// 弹奏二胡
$erhu = new Erhu();
$musician->play($erhu);
// 弹奏钢琴
$piano = new Piano();
$musician->play($piano);
// 弹奏小提琴
$violin = new Violin();
$musician->play($violin);
?>
```
输出结果为:
```
二胡演奏中...
钢琴演奏中...
小提琴演奏中...
```
这个代码实现了乐手可以弹奏不同的乐器,包括二胡、钢琴和小提琴,每个乐器都有自己的演奏方法。乐手类可以接收不同的乐器作为参数,调用它们的演奏方法。需要注意的是,PHP中的抽象方法也需要使用`abstract`关键字来定义。
阅读全文