final 是修饰符的关键字(final意为最终状态,言外之意就是不可再修改)
由于final属性不可修改的性质,可以保证程序的安全性与正确性
例如:
-
这个类不能被别的类继承(拓展),则可以用final 修饰类
-
这个类方法不想被继承的子类复写,则可以用final修饰方法
-
这个变量不想在程序中被修改值,则可以用final 修饰变量
-
这个引用变量不可以再指向别的对象,则可以用final 修饰引用变量
以上四条final属性的应用可以体现final保证程序的安全性,可防止数据被恶意修改等造成数据错误
以上四种修饰场景代码如下:
- 修饰常量:则该常量值不可修改(只能赋值一次)
final int NUM = 998;
NUM = 948; //会产生编译错误,因为常量不可修改
- 修饰方法:子类无法复写父类的final方法
class Father{
void speak(){
System.out.println("没做完作业不许摸鱼!");
}
}
class Son extends Father{
void speak(){
System.out.println("你想怎么玩就怎么玩"); //会产生编译错误,因为没做完作业不许摸鱼...(qmq
}
}
- 修饰类:该类不能被继承,但是该类的内容是可以修改的
final class Me{
void play(){
System.out.println("play with me!");
}
}
class You extends Me{ //会产生编译错误,因为我是不可以被继承的,只能和我玩
}
4. 修饰引用变量:该引用变量只能永远指向同一个对象
final Person me = new Person("998");
me = new Person("948"); // 编译错误,不能再将“我”指向别的对象