概述
final的意思是最终的、不可改变的
final可以修饰类、方法、局部变量、成员变量
1、fina修饰类
final修饰类时,表示这个类是最终类,不能被继承
1)使用final修饰类的时候,格式:
public final class 类名称 { // ... }
2) 注意:一个类如果是final的,那么其中所有的成员方法都无法进行重写(final类不能被继承,没有子类,而重写发生在父类与子类之间)
在使用final关键字的时候不能让同时使用abstract关键字(使用abstract修饰的是抽象类,是用来被继承的,而final修饰的类时不能被继承的)
2、final修饰方法
当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被重写
格式:
修饰符 final 返回值类型 方法名称 (参数列表) {
// 方法体
}
3、final修饰局部变量
使用final修饰的变量表示做种变量,不可以改变 ,只能进行一次赋值
如图:
在对使用final的变量进行再次赋值,就会出现报错
对于基本类型来说,不可变说的是变量当中的数据不可改变
对于引用类型来说,不可变说的是变量当中的地址值不可改变
4、修饰成员变量
final修饰成员变量的时候,成员变量也是不可变的
1) 由于成员变量具有默认值,所以用了final之后必须手动赋值,不会再给默认值。
- 在定义时直接进行赋值
- 在构造方法中进行赋值
2) 对于final的成员变量,要么使用直接赋值,要么通过构造方法赋值。二者选其一。(如果选择在构造方法中赋值,则要把setname( )函数取消掉)