【发布时间】:2014-06-19 23:00:32
【问题描述】:
我正在使用以下代码通过 final 方法初始化实例变量:
public class Whatever {
private int myVar = initializeInstanceVariable();
protected final int initializeInstanceVariable() {
return 10;
}
public static void main(String[] args) {
Whatever myVar2 = new Whatever();
myVar2.initializeInstanceVariable();
System.out.println(myVar2.myVar);
}
}
根据本教程:
http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html
“该方法是最终的,因为在实例初始化期间调用非最终方法可能会导致问题。”
我的问题是:如果没有 final 关键字,该方法会导致什么问题?我已经运行了带有和不带有 final 关键字的代码,结果是相同的,没有任何编译错误。
【问题讨论】:
-
如果您问过“
final在方法上有什么不同?”,您可能正在寻找答案。它与继承有关。 -
添加到我的评论中,请查看stackoverflow.com/q/7477553/2231632 了解为什么会这样。
标签: java methods initialization member final