| 1.final修饰类:表示该类不可继承 final不能修饰interface接口
 2.final修饰方法:表示该方法不能被子类覆盖(即子类不能重写父类的final方法,可以继承)
 final不能修饰构造函数
 3.final修饰字段属性:表示属性值第一次初始化后不能被修改
 final属性可以直接初始化或在构造函数中初始化
 如果属性是直接初始化,则其值不能被其它函数(包括构造函数)修改
 4.final修饰函数参数
 参数值不能被函数修改
 5.final修饰函数中的局部变量
 局部变量被第一次初始化后不能被修改
 public void hello() {
 final String name;
 name = "hi";       //ok
 name = "hello";    //error
 }
 使用final的意义:
 第一,为方法“上锁”,防止任何继承类改变它的本来含义和实现。设计程序时,若希望一个方法的行为在继承期间保持不变,而且不可被覆盖或改写,就可以采取这种做法。
 第二,提高程序执行的效率,将一个方法设成final后,编译器就可以把对那个方法的所有调用都置入“嵌入”调用里(内嵌机制)。
 |