在Java中声明类、变量和方法时,可使用关键字final来修饰。
1) final标记的类不能被继承,没有子类,final类中的方法默认是final的;
2) final 标记的方法不能被子类的方法覆盖或重写;
3) final 标记的变量表示常量,只能被赋值一次;
4) final不能用于修饰构造方法
5) 父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。
修饰类
当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让它继承,就可以用final进行修饰。
1) Final 类中的成员变量可以根据需要设为final;
2) Final 类中的所有成员方法都被隐式地指定为final 方法;
修饰方法
使用final方法的原因有两个:
第一个原因是把方法锁定,以防止任何继承类修改它的含义;
第二个原因是效率
因此只有在想明确禁止该方法在子类中被覆盖的情况下才将方法设置为final的!
注:类的private方法会隐式地被指定为final方法
修饰变量
修饰变量是final 用得最多的地方,首先了解一下final变量的基本语法:
对于一个final 变量:
l 如果是基本数据类型的变量,则其数值一旦初始化后便不能更改;
l 如果是引用类型的变量,则在对其初始化后便不能指向另一个对象;
static和final一块用表示什么
static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!
l 对于变量,表示一旦给值就不可修改,并且通过类名可以访问。
l 对于方法,表示不可覆盖,并且可以通过类名直接访问。