final关键字的作用

final关键字可以用于三个地方:

  • 类属性,表明该属性是常量,不可变
  • 类,使用final修饰的类不能被继承
  • 方法,使用final修饰的方法不可以被覆盖。

final实例字段

可以将实例字段定义为final。这样的字段必须在构造对象时初始化。也就是说,必须确保在每一个构造器执行之后,这个字段的值就已经设置,并且以后不能再修改这个字段。例如:

class Emploee 
{
    private final String name;
}

final类和方法

使用final修饰的类不能被继承,使用final修饰的方法不可以被覆盖。

// 该类不能被继承
final class P{

}
class P 
{
    // 该方法不能被子类重写
    final public void m1 ()
    {

    }
}