final关键字
final关键字
final 关键字的含义
final 代表最终、不可改变的.
final关键字的四种用法
1.final可以用来修饰一个类
含义:当前这个类不能有任何的子类
格式:
public final class 类名{
}
注意:一个类如果是final类,那么其中的成员方法都无法进行覆盖重写。
2.final可以用来修饰一个方法
含义:当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也即是不能被覆盖重写。
格式:
修饰符 final 返回值类型 方法名称(参数列表){
//方法体
}
注意:对于类、方法来说,abstract和final不能同时使用,因为矛盾。(子类当中是一定要覆盖重写抽象方法的,除非你也是抽象类,final方法不能覆盖重写。)
public abstract final void 方法名()是错误写法
3.final可以用来修饰一个成员变量
一旦使用final用来修饰局部变量,那么这个变量就不能更改
“一次赋值,终生不变”
final int num = 10;
num = 20 ;//错误
//正确写法,只要保证有一次唯一的赋值即可。
final int num2;
num2 = 30;
对于基本类型来说,不可变说的是变量当中的数据不可改变。
对于引用类型来说,不可变说的是变量当中的地址值不可改变。
Student stu1 =new Student("赵丽颖");
System.out.println(stu1);//@50cbc42f
System.out.println(stu1.getname());//赵丽颖
stu1 = new Student("冯绍峰");
System.out.println(stu1);//@75412c2f
System.out.println(stu1.getname());//冯绍峰
System.out.println("======================");
final Student stu2 = new Student("高圆圆");
//错误写法!final的引用类型变量,其中的地址值不能改变
//stu2 = new Student("赵又廷");
System.out.println(stu2.getname());//高圆圆
stu2.setName(“高圆圆圆圆圆圆圆圆”);
System.out.println(stu2.getname());//高圆圆圆圆圆圆圆圆
4.final可以用来修饰一个局部变量
对于成员变量来说,如果使用final关键字修饰,那么这个变量照样不能变。
1.由于成员变量具有默认值,所以用了final后必须手动赋值,不会再给默认值了。
2.对于final的成员变量,要么使用直接赋值,要么通过构造方法赋值。
3.必须保证类中所有重载的构造犯法,都最终会对final的成员变量进行赋值。
private final String name = “鹿晗”;//构造方法报错
public Person(){
name = “关晓彤”
}

浙公网安备 33010602011771号