abstract class Base {//抽象类
public Base(int i) {//抽象类的构造方法
System.out.println("Base constructor, i = " + i);
}
public abstract void f();//抽象方法
}
public class AnonymousConstructor {//测试类
public static Base getBase(int i) {//测试类的一个方法
return new Base(i) {//匿名内部类,就是实例化Base //匿名内部类可以直接将一个接口或抽象类实例化
{//非静态语句块,在new的时候执行
System.out.println("Inside instance initializer");
}
public void f() {//重写抽象类Base的抽象方法。实现类必须重写父类中抽象方法
System.out.println("In anonymous f()");
}
};//至此匿名内部类实例化完成。并返回。
}
public static void main(String[] args) {//测试类AnonymousConstructor的main方法,main中只能调静态方法
Base base = getBase(47);//这里就是在调用静态方法。
base.f();
}
}//测试类结束。
public Base(int i) {//抽象类的构造方法
System.out.println("Base constructor, i = " + i);
}
public abstract void f();//抽象方法
}
public class AnonymousConstructor {//测试类
public static Base getBase(int i) {//测试类的一个方法
return new Base(i) {//匿名内部类,就是实例化Base //匿名内部类可以直接将一个接口或抽象类实例化
{//非静态语句块,在new的时候执行
System.out.println("Inside instance initializer");
}
public void f() {//重写抽象类Base的抽象方法。实现类必须重写父类中抽象方法
System.out.println("In anonymous f()");
}
};//至此匿名内部类实例化完成。并返回。
}
public static void main(String[] args) {//测试类AnonymousConstructor的main方法,main中只能调静态方法
Base base = getBase(47);//这里就是在调用静态方法。
base.f();
}
}//测试类结束。