public class PlayInstrument {
public static void main(String[] args) {
Instrument erhu = new Erhu();
Instrument piano = new Piano();
Instrument violin = new Violin();
Musician musician = new Musician();
musician.play(erhu);
musician.play(piano);
musician.play(violin);
}
}
//乐器类
public class Instrument {
public void makeSound(){
System.out.println("乐器奏乐。");
}
}
public class Erhu extends Instrument{
@Override
public void makeSound() {
// super.makeSound();
System.out.println("用二胡演奏二泉映月。");
}
}
public class Piano extends Instrument{
@Override
public void makeSound() {
// super.makeSound();
System.out.println("用钢琴弹奏克罗地亚狂想曲。");
}
}
public class Violin extends Instrument {
@Override
public void makeSound() {
// super.makeSound();
System.out.println("用小提琴演奏月光曲。");
}
}
//乐手类
public class Musician{
public void play(Instrument i){
i.makeSound();
}
}
//方法二
/*public class Musician {
Instrument i;
public Musician() {
}
public Musician(Instrument i) {
this.i = i;
}
public void play(Instrument i){
i.makeSound();
}
}*/