interface Instrument{
成都创新互联自2013年起,是专业互联网技术服务公司,拥有项目成都网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元始兴做网站,已为上家服务,为始兴各地企业和个人服务,联系电话:18980820575
void play();
}
class Piano implements Instrument{
public void play() {
System.out.println("play Piano");
}
}
class Violin implements Instrument{
public void play() {
System.out.println("play Violin");
}
}
public class InstrumentTest{
public static void main(String[] args) {
Instrument i1 = new Piano();
Instrument i2 = new Violin();
i1.play();
i2.play();
}
}
/*根据你的需求来看 用向上转型
* 一个对象可以看做是本类类型,也可以看做它的超类类型。
* 取得一个对象的引用并将它看做超类的对象,成为向上转型。
* */
//创建抽象的音乐Instrument类,在该类定义了一个play()弹奏方法,并创建两个子类:
//钢琴和小提琴。在InstrumentTest类中定义testPlay()的演奏方法,
//该方法接受音乐类的对象做方法的参数,并调用参数的play()方法进行演奏
//创建一个类名为InstrumentTest.java源文件,只在一个文件内,内容如下。
abstract class Instrument {
public abstract void play();//弹奏方法
}
class Piano extends Instrument{
public void play(){ //钢琴(Piano)演奏
System.out.println("钢琴(Piano)演奏");
}
}
class Violin extends Instrument{
public void play(){ //小提琴(Violin)演奏
System.out.println("小提琴(Violin)演奏");
}
}
public class InstrumentTest{
public void testPlay(Instrument instrument){
instrument.play(); //传递音乐对象的不同,进行不同的演奏
}
public static void main(String[] args) {
InstrumentTest it = new InstrumentTest();
Piano piano = new Piano(); //钢琴
Violin violin = new Violin();//小提琴
it.testPlay(piano); //钢琴(Piano)演奏
it.testPlay(violin); //小提琴(Violin)演奏
}
}
当然这个抽象的音乐类 也可以改成接口。
希望能帮到您,也希望你能满意!
/**
* 歌曲类
*/
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);
}
}