在程序中,出于安全考虑,使用常量的统一,或者修改的方便,常用final关键字把一些变量或者方法定义在一个类中,也可以把一个类定义为终极类。
1、终极类
以关键字final修饰的类称为终极类,标记为final的类不能被继承。
final class finalClass{
....
}
2、终极方法
被标记为final的方法称为终极方法,此方法将不能被覆盖。另外,把方法标记为final不经出于安全考虑,有时也用于优化,因为编译器编译此类方法生成的代码允许对该方法直接调用,而不再像对待一般成员方法那样使用虚拟调用,即在执行时再决定究竟调用哪个方法,从而提高了编译运行效率。
final int finalMethod(){
....
}
3、终极变量
一个变量被标记为final,它就是一个常量,值将不可被改变。
public abstract class className{
public static final int AccessType=1;
}
注意:如果将一个引用类型的变量标记为final,那么这个变量将不能指向其他对象,但它所指对象的取值仍然是可以改变的。
class Animal{
int age=5;
}
class FinalVar{
public static void main(String []args){
final Animal animalStance =new Animal();
animalStance.age=3; //可以
animalStance= new Animal(); //错误,不可以再指向其他对象。
}
}