我认为将
static方法标记为并不是不好的做法
final。
如您所知,
final将防止该方法被子类隐藏, 这是一个好消息 。
我对您的发言感到非常惊讶:
在Foo中最后重新定义method()将禁用Bar隐藏它的功能,并且重新运行main()将输出:
在Foo
中
不可以,将方法标记为
finalin
Foo将阻止
Bar编译。至少在Eclipse中,我得到了:
线程“主”中的异常java.lang.Error:未解决的编译问题:无法从Foo覆盖最终方法
此外,我认为人们应该始终调用
static使用类名来限定他们的方法,即使在类本身内部也是如此:
class Foo{ private static final void foo() { System.out.println("hollywood!"); } public Foo() { foo(); // both compile Foo.foo(); // but I prefer this one }}


