public abstract class AbstractClass {
abstract protected void runOutput() throws Exception;
}
public class TestMain {
public static void main(String[] args)
{
AbstractClass a = new AbstractClass()
{
@Override
protected void runOutput() throws Exception {
System.out.println("test new abstract class");
}
};
try {
a.runOutput();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这样的代码是实现了一个匿名的内部类,它的含义是:创建一个实现AbstractClass类的类的新对象,需要实现的方法runOutput定义在括号{}内。
由于构造器的名字必须与类名相同,而匿名类没有类名,所以,匿名类不能有构造器。取而代之的是,将构造器参数传递给超类构造器。尤其是在内部类实现接口的时候,不能有任何构造参数。