//演示引用变量的多态特征
//以说明把接口和实现分离的多态特征增加了程序的可扩展性
import static com.futa.Print.*;
class Instrument {
void play(int n) {print("Instrument.play()"+n);}
String what() {return "Instrument";}
void adjust() {print("Adjusting Instrument");}
}
class Wind extends Instrument {
void play(int n) {print("Wind.play()"+n);}
String what() {return "Wind";}
void adjust() {print("Adjusting wind");}
}
class Percussion extends Instrument {
void play(int n) {print("Percussion.play()"+n);}
String what() {return "Percusssion";}
void adjust() {print("adjusting Percussion");}
}
class Stringed extends Instrument {
void play(int n) {print("Stringde.play()"+n);}
String what() {return "Stringde";}
void adjust() {print("adjusting Stringed");}
}
class Brass extends Wind {
void play(int n) {print("Brass.play()"+n);}
void adjust() {print("adjusting Brass");}
}
class Woodwind extends Wind {
void play(int n) {print("Woodwind.play"+n);}
String what() {return "Woodwind";}
}
public class Music {
public static void tune(Instrument i) {
i.play(1);
}
public static void tuneAll(Instrument[] e) {
for(Instrument i : e)
tune(i);
}
public static void main(String[] args) {
Instrument[] orchestra = {
new Wind(),
new Percussion(),
new Stringed(),
new Brass(),
new Woodwind()
};
tuneAll(orchestra);
}
}
引用变量是多态的
最新推荐文章于 2022-05-01 22:29:16 发布