2、编写程序实现乐手弹奏乐器,乐手可以弹奏不同的乐器从而发出不同的声音。
可以弹奏的乐器包括二胡、钢琴和小提琴。
实现思路及关键代码:
1)定义乐器类Instrument,包括方法makeSound()
2)定义乐器类的子类:二胡Erhu、钢琴Piano和小提琴Violin
3)定义乐手类Musician,可以弹奏各种乐器play(Instrument i)
4)定义测试类,给乐手不同的乐器让他弹奏
public class MusicTest01 {
public static void main(String[] args) {
//未写构造函数,默认无参构造 创建乐手对象m1
Musician m1 = new Musician();
//创建乐器对象
System.out.println("第一种方法创建:");
//第一种方法
Erhu i1 = new Erhu();
m1.play(i1);
Piano i2 = new Piano();
m1.play(i2);
Violin i3 = new Violin();
m1.play(i3);
System.out.println("第二种方法创建:");
//第二种方法
m1.play(new Erhu());
m1.play(new Piano());
m1.play(new Violin());
}
}
//乐器类
class Instrument {
public void makeSound() {
System.out.println("乐手在弹奏乐器!");
}
}
//乐器类子类 二胡 Erhu
class Erhu extends Instrument {
public void makeSound() {
System.out.println("乐手在拉二胡!");
}
}
//乐器类子类 钢琴 Piano
class Piano extends Instrument {
public void makeSound() {
System.out.println("乐手在弹钢琴!");
}
}
//乐器类子类 小提琴 Violin
class Violin extends Instrument {
public void makeSound() {
System.out.println("乐手在拉小提琴!");
}
}
//乐手类
class Musician {
public void play(Instrument i) {
i.makeSound();
}
}