标签:
package com.yue.abs; abstract class Instrument { abstract void play(String n); // 非抽象方法 private String what() {return "Instrument";} abstract void adjust(); } class Wind extends Instrument { void play(String n) {System.out.println("Wind" + n);} void adjust() {} } // 没实现完抽象父类中的方法 abstract class Percussion extends Instrument { // 实现其中的一个 void play(String n) { System.out.println("Percussion" + n); } // 没实现这个方法,虽然这个adjust和父类Instrument中的一样,但这个方法是Percussion的抽象方法 abstract void adjust(); // 这个抽象类还可以定义其他抽象的方法 abstract void next(); } class Brass extends Wind { } public class Music { public static void main(String[] args) { // 声明一个Instrument,这样会报错 // Instrument instrument = new Instrument(); // 不过可以这样 Instrument inside = new Instrument() { void play(String n) { System.out.println("内部定义:" + n); } void adjust() { } }; // 调用 Instrument[] orchestra = { inside, new Wind(), new Brass() // 因为这个是个空类,没有重写父类方法,他就只能执行父类中的方法了。 }; for (Instrument i : orchestra) { i.play("呵呵:"); } } }
interface Instrument{ int i = 0;//接口中的域 static&final void play (String n); public void adjust(); } //接口也可以继承接口而不必实现其中的方法,但不能使用implements关键字 interface Insturment2 extends Instrument{ //但父接口(Instrument)的方法并没有被重写,虽然是一样的,这个play仅属于Insturment2 public void play(String n); } class Wind implements Instrument{ public void play(String n) {System.out.println("Wind" + n);} public void adjust() {} } class Percussion implements Instrument{ public void play(String n) {System.out.println("Percussion" + n);} public void adjust() {} } public class Music { public static void main(String[] args) { Instrument instrument = new Instrument() { public void play(String n) {System.out.println("内部实现:" + n);} public void adjust() {} }; Instrument[] orchestra = { new Wind(),new Percussion(),instrument }; // Instrument.i ++;//因为是final的这样是错误的调用,因为是静态、public,可以Instrument.i } }
标签:
原文地址:http://www.cnblogs.com/ayue-1994-com/p/5792362.html