内部匿名クラスの簡潔な実装


通常、インタフェース名によって内部匿名クラスを実現する場合、実現せざるを得ない方法が煩わしい状況をもたらすことを望まない場合は、抽象クラスを借りなければならない.ほとんどはDefaultXxxのような形式でJDKに標榜されている.
interface Test1 {
	public abstract void a();//just to test the abstract keyword
	void b();
	void c();
}

abstract class Test2 implements Test1 {
	public void a() {
		System.out.println("a");
	}
	
	public void b() {
		System.out.println("b");
	}
	
	public void c() {
		System.out.println("c");
	}
}

public class Test {

	public static void main(String[] args) {
		new Test(new Test2() {
            public void a() {
				super.a();
			}
			
			public void b() {
				super.b();
			}
		});
	}
	
	public Test(Test2 test2) {
		
	}

}