Compile this program:interface Closable {
void close();
}class File implements Closable {
@Override
public void close() {
//... close this file...
}
}
Sun的答案是会有编译错误,但我上机的结果却没有,请教大家了!
void close();
}class File implements Closable {
@Override
public void close() {
//... close this file...
}
}
Sun的答案是会有编译错误,但我上机的结果却没有,请教大家了!
这题是没有main(String args[])方法,程序编译时没有错,说明语法正确!而在运行时,JVM会自动调用main(String args[])这个方法,显然,这个File类不具有该方法的定义,程序执行找不到入口,所以会抛出NoSuchMethodError!
使用@override强制声明,覆盖父类的方法,而非实现接口!
她表示覆盖父类中的close()方法,而父类是超类Object,他并没有close()方法。删除@override 就对了!
楼主删了就行了
是什么意思?
难不成是注释,告诉我们重写该方法吗?
为什么要加它呢?
虽然跟File同名,如果没有导入File类, 是没有问题的
http://blogclosed.javaeye.com/blog/435720
http://blogs.sun.com/ahe/entry/override