final关键字的作用
- 1、被final修饰的类不可以被继承
- 2、被final修饰的方法不可以被重写(override)
- 3、被final修饰的变量不可以被改变
1、fianl类
如果希望一个类不允许任何类继承,并且不允许其他人对这个类进行任何改动,那么将他定义为fianl类。
如果一个类为final类,那么类中的所有方法都被隐式地设置为final形式,但是该类中的成员变量可以被定义为final或者非final形式。
2、final方法
将方法定义为final类型可以防止子类通过覆盖的方式(overriding)修改该方法的定义与实现,同时定义为final的方法执行效率要更高。
如果一个父类的方法被private修饰,那么该方法被隐式地定义为final类型。因此无需将一个被private修饰的方法再定义为final。
3、final变量
final关键字定义的变量必须在声明时对其进行赋值操作。或者在类中声明,在构造函数中赋值,此时如果该类拥有多个构造函数时,必须每个构造函数都为其赋值。
final除了可以修饰基本数据类型的变量以外,还可以修饰基本引用类型的变量。不同之处在于,修饰基本数据类型变量时,该值变量不能被重新赋值,而修饰引用类型变量时,它只能指向一个对象,不能将其修改为指向另一个变量,但是该变量的值可以被修改,例如:
public class FinalString
{
private String str;
public Fina