final关键字
最终,不可改变的意思
共有四种用法
用法一:用来修饰一个类:
格式:
public final class 类名{
//....
}
意义:当前这个类不能有任何子类。(太监类)
注意事项:如果一个类是final修饰的,那么他所有的成员方法都不能进行覆盖重写。(因为它没有子类)
用法二:用来修饰一个成员方法:
格式:
public final 返回值 方法名(){
//...
}
意义:当一个方法被final修饰时,那这个方法就是最终方法,不能被重写。
注意事项:对于类和方法来说,final和abstract关键字不能被同时使用,它们互相矛盾,一个一定要重写,一个不能重写。
用法三:用来修饰一个局部变量:
意义:这个变量不能进行更改,一次赋值,终生不变。
用法四:用来修饰一个成员变量:
注意事项:
1.这里和用法三的区别就是成员变量具有默认值,因此如果用final修饰必须手动赋值。
2.对于final修饰的成员变量,要么直接赋值,要么通过构造方法赋值,但是用构造方法赋值时,一定要保证类当中所有的重载方法都最终会对final的成员变量进行赋值。
public person(){
//这是无参构造 一定要对final修饰的name变量赋值
name = "鹿晗";
}
public person(Sting name){
//传入什么就是什么 已赋值
this.name = name;
}