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();
}
}
在上面的代码中,我不明白创建 Demo 类的对象 d 并在其前面添加 static 关键字的用法。如果我删除 static 关键字,则会显示错误。实际上,我正在经历匿名内部类概念并被困在这里。需要帮助....有人可以解释一下吗?
Java 中的 static 关键字意味着变量或函数在该类的所有实例之间共享,而不是在实际对象本身之间共享。
在您的情况下,您尝试访问static
method,
public static void main(String[] args)
因此,我们在此处访问的任何内容都无需创建该类的实例Flavor1Demo
必须是一个static
资源。
如果您想删除static
关键字来自Demo
类,你的代码应该是这样的:
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
然后得到non-static
资源d
上面的代码不会抱怨编译错误。
希望能帮助到你!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)