鉴于以下课程:
public class SomeClass {
private final int a;
public SomeClass(int a) {
this.a = a;
}
}
Run Code Online (Sandbox Code Playgroud)
哪个在完整性方面更合适?
public final int getA() {
return a;
}
Run Code Online (Sandbox Code Playgroud)
要么
public int getA() {
return a;
}
Run Code Online (Sandbox Code Playgroud)
在我看来,两者都是等价的,所以我甚至都不打扰final
.
但是为了完成,第一种方法似乎比第二种更"正确".
rge*_*man 11
关键字final
在应用于方法时意味着完全不同,而不是应用于变量.
在方法上,这意味着没有子类可以覆盖该方法.它与不更改值无关.所以,你的两个选择并不等同,因为子类是否可以覆盖getA()
.
当你final
在Java中应用不同的东西时,它会给你带来几乎完全不同的含义。
final on variables
:无法为其赋值。
final on methods
: 方法不能被子类覆盖
final on classes
:该类不能由另一个类扩展。
希望能给你一些清晰的信息。
归档时间: |
|
查看次数: |
1345 次 |
最近记录: |