abstract class AbsDemo
{
abstract void show();
}
class Outer
{
int x=3;
public void function()
{
//情况1
AbsDemo d=new AbsDemo()
{
int num=3;
void show()
{
System.out.println("num="+num);
}
void abc()
{
System.out.println("hello");
}
};
d.show();
d.abc();//编译失败
//情况2
new AbsDemo()
{
int num=3;
void show()
{
System.out.println("num="+num);
}
void abc()
{
System.out.println("hello");
}
}.abc();
}
}
class InnerClassDemo4
{
public static void main(String[] args)
{
new Outer().function();
}
}
为什么情况1中的d.abc();不可以通过编译,情况2中的abc()方法就可以呢?
我觉得应该都不可以啊。 |