鉴于以下课程:
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 次 |
| 最近记录: |