多态的作用
动力节点Java基础课–作业题
通过下面这个例子显示出理解的作用。
/*
1、定义乐器类Instrument,包括方法makeSound()
2、定义乐器类的子类:二胡Erhu、钢琴Piano和小提琴Violin
3、定义乐手类Musician,可以弹奏各种乐器play(Instrument i)
4、定义测试类,给乐手不同的乐器让他弹奏
*/
public class Test{
public static void main(String[] args){
// 创建乐手对象
Musician m = new Musician();
// 创建各种乐器对象
Erhu er = new Erhu();
m.play(er);
Piano pi = new Piano();
m.play(pi);
Violin vi = new Violin();
m.play(vi);
}
}
// 乐手类
class Musician{
// 这里输入的参数类型为Instrument类型
public void play(Instrument i){
i.makeSound();
}
}
// 乐器类
class Instrument{
public void makeSound(){
System.out.println("乐器可以发出乐器声音~~~~");
}
}
class Erhu extends Instrument{
public void makeSound(){
System.out.println("二胡可以发出二胡声音~~~~");
}
}
class Piano extends Instrument{
public void makeSound(){
System.out.println("钢琴可以发出钢琴声音~~~~");
}
}
class Violin extends Instrument{
public void makeSound(){
System.out.println("小提琴可以发出小提琴声音~~~~");
}
}