final可以修饰类、属性、方法和局部变量,在以下情况下可能用到此关键字
1.当类不希望被继承时
2.当不希望父类的某个方法被子类覆盖或者重写时候
3.不希望类的某个属性的值被修改
4.当不希望某个局部变量被修改
package com.leo;
import com.leo.modifier.A;
public class Test {
public static void main(String[] args) {
}
}
// 如果我们要求A类不能被其它类继承
final class A {
}
//class B extends A {
//
//}
class C {
// 如果要求类方法不能被其子类继承
final public void hi() {}
}
//class D extends C {
// @Override
// public void hi() {
// super.hi();
// }
//}
class E {
final public double TAX_RATE = 0.08;
}
// 当不希望某个局部变量被修改
class F {
public void cry() {
final double NUM = 0.01;
// NUM = 1.2;
System.out.println("NUM = " + NUM);
}
}