写在开头
final关键字可以修饰类、变量、方法。比如修饰在类上表明这个类是最终类,不能被继承;修饰在属性上表示这个属性必须进行初始化;修饰在方法上说明这个方法不能被重载。
修饰类
当final修饰一个类时,表明其为最终类,它不能被继承,并且类中所有的属性和方法都默认是final类型。
final class Animal{
public void eat(){
System.out.println("吃");
}
}
如图所示

当一个类继承一个被final关键字标明的类时,编辑器直接报错
修饰变量
这里又分两种情况,当final修饰的变量是基本数据类型时,该变量必须初始化并且在以后无法在改变。如果final修饰的时一个引用类型,则这个引用类型的地址无法改变,但是这个引用的对象是可以改变的。
被final修饰的变量称为常量,一般都是大写字母命名
private final String NAME = "";
修饰方法
当一个方法被final修饰后,则这个方法无法被重载。被final修饰的类中所有方法自动默认被修饰为final方法,但是不包括字段。
如图所示

上图是一个被final修饰的方法,子类想重载却报错的一个示例图。