class Demo {
void show() {
System.out.println("i am in show method of super class");
}
}
class Flavor1Demo {
// An anonymous class with Demo as base class
static Demo d = new Demo() {
void show() {
super.show();
System.out.println("i am in Flavor1Demo class");
}
};
public static void main(String[] args){
d.show();
}
}
在上面的代码中,我不明白在前面使用static关键字创建Demo类的对象d的用法。如果我删除 static 关键字,它会显示错误。实际上,我正在经历匿名内部类概念并被困在这里。需要帮助….任何人都可以解释一下吗?
原文由 Ajay Khetan 发布,翻译遵循 CC BY-SA 4.0 许可协议
Java 中的 static 关键字意味着变量或函数在该类的所有实例之间共享,而不是实际对象本身。
在您的情况下,您尝试以
static
方法访问资源,因此,我们在此处访问的任何未创建类
Flavor1Demo
实例的内容都必须是static
资源。如果要从
Demo
类中删除static
关键字,您的代码应如下所示:在这里你看,我们创建了
Flavor1Demo
的实例,然后获取non-static
资源d
上面的代码不会抱怨编译错误。希望能帮助到你!