java 接口的匿名内部类
package com.easyway.commons.ispace.dev.oop.interfaces;
/**
*
* java 接口的匿名内部类
* @author longgangbai
* @date 2010-5-11
* @version 1.0
* @since JDK6.0
*/
public class InterfaceJavaAnonymousType {
/**
* 在一个类中也可以定义内部接口,
*/
public interface A{
/**
* 接口中的静态内部类
*/
static class B{
{
System.out.println(" init A.B");
}
}
/**
* 接口中的内部类的
*/
class E{
{
System.out.println(" init A.E");
}
}
/**
* 接口中的方法
* @param b
*/
public void method(B b);
}
/**
* 在接口A中定义静态内部类B,类C实现了接口A,类B的名字对C是可以见的,但是在D中,必须通过A.B的形式访问静态内部类B
*/
class C implements A{
B b=new B();
@Override
public void method(B b) {
}
}
/**
* 在接口中可以定义静态内部类,此时静态内部类位于接口的命名空间中。
*/
class D{
A.B b1=new A.B();
}
public abstract class AbstractJavaAnonymousType {
AbstractJavaAnonymousType a=new AbstractJavaAnonymousType(){
void method(){
System.out.println();
}
};
abstract void method();
}
/**
* 静态内部接口
* @author longgangbai
* @date 2010-5-11
* @version 1.0
* @since JDK6.0
*/
public static interface Tool{
public int add(int a,int b);
}
private Tool tool=new Tool(){
@Override
public int add(int a, int b) {
return a+b;
}
};
public void add(int a,int b,int c){
tool.add(tool.add(a, b), c);
}
class MyTool implements InterfaceJavaAnonymousType.Tool{
@Override
public int add(int a, int b) {
return a+b;
}
}
}