Java中的static关键字表示变量或函数在该类的所有实例之间共享,而不是实际的对象本身.
在您的情况下,您尝试以静态方法访问资源,
public static void main(String[] args)
因此,我们在此处访问而不创建Flavor1Demo类的实例的任何内容都必须是静态资源.
如果要从Demo类中删除static关键字,您的代码应如下所示:
class Flavor1Demo {
// An anonymous class with Demo as base class
Demo d = new Demo() {
void show() {
super.show();
System.out.println("i am in Flavor1Demo class");
}
};
public static void main(String[] args) {
Flavor1Demo flavor1Demo = new Flavor1Demo();
flavor1Demo.d.show();
}
}
在这里,您看到,我们创建了一个Flavor1Demo实例,然后获取非静态资源d
上面的代码不会抱怨编译错误.
希望能帮助到你!