@Source :《Think in Java》 ch.7
final:“ 无法改变的” ,不想改变的理由是 设计或者效率。
用到final的三种情况:数据、方法和类。
一、数据
常 量定义:public static final空白final:声明为final但未给定初始值。可以再构造器中用表达式对final进行赋值。编译器都确保空白final在使用前必须被初 始化。final参数:无法再方法中更改参数引用所指向的对象。这一特性主要用来想匿名内部类传递数据。
二、方法
使用final方法的原因:一是方法锁定,以防止任何继承类修改它的定义;二是效率,在使用java SE5/6时,应该让编译器和JVM去处理效率问题,只有在想要明确禁止覆盖时,才将方法设置为final
所有private 方法都隐式地指定是final的。
“覆盖”只有在某方法是基类的接口的一部分时才会出现。即,必须能将一个对象向上转型为它的基本类型并调用相同的方法。
三、类
final类不能被继承