public void function(){...........}这一对大括号里不是要重写show方法吗? 重写完了再调用对吧? 那么如果现在他有名字,我们就可以用他子类名字创建对象然后调用,现在他没名字,我们就只能new他的父类,但这个过程其实是创建子类对象,这样的话就有了子类对象调用show方法了.(个人理解,建议回去看一下匿名内部类,那里讲的很清楚.....子类没名字所以new父类从而创建子类对象,大概就是这样)
public void function()
{
final int x=3;
new AbsDemo()
{
void show()
{
System.out.println("x= "+x);
}
}.show();
}
这是定义并重写匿名类的书写方式,记住就行,定义了AbsDemo的重写后的子类并调用show()方法。
楼主,感觉你的代码中有一个bug。
final int x=3;才可以被局部内部类访问。