Java中定义匿名内部类格式如下:
new 父类()
{
类体
}
在定义的同时也创建了匿名内部类对象,并没有显式地写出继承关系。可以用父类变量指向匿名内部类对象,但除了覆盖父类的成员外,该变量无法调用在匿名内部类类体中定义的其他成员,一般通过这种形式来使用面向对象中动态多态行的成员方法覆盖机制。“new 父类”实际上调用了JVM自动生成的匿名内部类构造函数。
匿名内部类的实例如下:
public class Base {
public Base(){}
public void print()
{
System.out.println("I'm Base!");
}
}
public class Main {
public static void main(String args[])
{
Base b = new Base()
{
public void print()
{
System.out.println("I'm a child of Base!");
}
};
b.print();
}
}
运行输出结果为I‘m a child of Base.