[java] keyword 'final'
2009-05-24 05:46:06| 分类:
lang_java
| 标签:
|举报
|字号大中小 订阅
对于变量,final 就是 C++ 中 const 的意思。
final int a = 10;
a = 20; // not allow
而 final 作为类/函数的修饰符时,则表示是否能 override。
final class Foo {}
class Bar extends Foo {} // not allow
class Foo {
public final void baby() {}
}
class Bar extends Foo {
public void baby() {} // not allow
}
对于类,有了 final 后,就不能被继承了,这是一种编译器强制行为。而 C++ 通过是否有 virtual dtor 语义上决定一个类是否允许继承,则多少有点隐晦。
java 中所有 class method 默认都是 virtual function,使用 final 修饰后,此函数不能被 override。C++中默认函数都是 non-virtual function,也允许子类 override。
评论这张
转发至微博
转发至微博
评论