《JAVA编程思想》 P140
三种用途:
1.修饰成员属性
public final int i = 1;//代表属性值不可变
public final SomeClass class = new SomeClass(); //代表属性指向的引用不可变
2.修饰方法参数
public String test(final SomeClass class){}; //代表在方法内部不能改变对象的引用,如class=newSomeClass();
3.修饰方法
public final String test(final SomeClass class){};//代表此方法无法在此类的子类中被覆盖,从而被改写方法逻辑
4.修饰类
public final class SomeClass {}//代表此类不可被继承