十分钟带你认识final关键字(快收藏!!)
一、final关键字介绍及引入
final关键字是Java中的一个保留字,它可以修饰类、方法和变量。当一个类被声明为final时,它不能被继承;当一个方法被声明为final时,它不能被子类重写;当一个变量被声明为final时,它的值只能被赋值一次,之后不能再改变。
二、final关键字基本用法
1. 用来修饰类
声明一个final类
public final class Test {
}
再写一个继承类Try来继承Test
class Try extends Test{
}
我们可以看到Test类不能被继承
删除final则不会报错
final修饰类表明该类不能被继承
注意:一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写。
final类中的成员变量可以根据需要设为final,但是final类中的所有成员方法都会被隐式地指定为final方法。 在使用final修饰类的时候,一定要谨慎选择,除非这个类以后不会用来继承或者出于安全考虑,尽量不要将类设计为final类。
2. 用来修饰方法
在Test中写一个由final修饰的run方法
public class Test {
public final void run(){
System.out.println("我会跑");
}
}
在Try中继承并尝试重写
class Try extends Test{
public void run(){
System.out.println("我也会");
}
}
重写就报了这样的错,提示要改为非final方法
删除final后报错消失
这就可以看出,被final修饰的方法是不可以被继承的子类所重写的,通俗一点讲就是【子类要老老实实地继承父类的方法,不可以做任何篡改】
3. 用来修饰成员变量
private final int value;
public void TestFinalVariable(int value) {
this.value = value; // 必须在构造函数中进行初始化
}
public void print() {
value = 20; // 错误,final变量的值不能被修改
System.out.println(value);
}
我们可以看到对应报错提示
当一个成员变量被声明为final时,它的值只能被赋值一次,之后不能再改变。这意味着在构造函数中必须对其进行初始化,并且不能在其他地方进行修改。
4. 用来修饰局部变量
对于局部变量来讲,可以是过程中定义的,也可以是形参变量
当final修饰一个基本数据类型时,表示该基本数据类型的值一旦在初始化后便不能发生变化
public static void main(String[] args) {
final int i=15;//初次赋值
i = 20;//二次赋值失败
System.out.println(i);
}
二次赋值失败
删除final二次赋值成功且可以运行
从代码和运行结果可以得出,不可以做二次赋值
5. 用来修饰方法参数
定义成用final关键字修饰方法形参,那一定是不可以在方法体中对其进行赋值的,因为你在调用这个方法的时候系统会让你一定要传入参数
public static void main(String[] args) {
int i=15;
System.out.println(i);
}
public static void test(final int i){
i = 20;
System.out.println(i);
}
删除final后即可运行
原文地址:https://blog.csdn.net/2301_79659699/article/details/140346258
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!