* 歌曲類
*/
public class Music {
public Music() {
super();
}
public Music(String song) {
super();
System.out.println("《"+song+"》");
System.out.println(".....多來米發所拉稀....");
}
}
/**
* 樂器接口,凡實現該接口的都遊演奏的功能
*/
public interface Instrument {
public Music musical(String song);
}
/**
* 管弦類樂器
*/
public class Orchestral implements Instrument {
public Music musical(String song) {
System.out.println("下面用管弦類樂器演奏 "+song);
return new Music(song);
}
}
/**
* 彈奏類樂器
*/
public class Spiccato implements Instrument {
public Music musical(String song) {
System.out.println("下面用彈奏類樂器彈奏 "+song);
return new Music(song);
}
}
/**
* 其他類型樂器
*/
public class Other implements Instrument {
String instrument;
public Other() {
super();
}
public Other(String instrument) {
this.instrument = instrument;
}
public Music musical(String song) {
System.out.println("用 "+instrument+" 演奏的 "+song);
return new Music(song);
}
public static void main(String[] args) {
Other other = new Other("古箏");
other.musical("高山流水");
}
}
/**
* 笛子
*/
public class Fife extends Orchestral {
public Fife(String song) {
super.musical(song);
System.out.println("這是用橫笛吹奏的 "+song);
}
}
/**
* 薩克斯
*/
public class Sax extends Orchestral {
public Sax(String song) {
super.musical(song);
System.out.println("這是用薩克斯演奏的 "+song);
}
}
/**
* 吉他
*/
public class Guitar extends Spiccato {
public Guitar(String song) {
super.musical(song);
System.out.println("這是吉他彈奏的");
}
}
/**
* 鋼琴
*/
public class Piano extends Spiccato {
public Piano() {
super();
}
public Piano(String song) {
super.musical(song);
System.out.println("這是在用鋼琴彈奏 "+song);
}
}