final关键字
final关键字主要有3种作用:
1、修饰变量的定义
2、修饰类的定义
3、修饰类中的普通方法
修饰变量的定义
当使用final修饰变量的时候(属性/静态属性/形参变量/局部变量),变量仅允许一次赋值机会,就不能被改变了。
例如:
final int a = 10;
final int b;
b = 20;
- 1
- 2
- 3
当变量a=10,被final修饰后,就不能被修改a的值,如果修改,会报错不能完成编译。
我们知道,当局部变量定义的时候,需要被初始化,否则会报错,但是被final修饰的局部变量可以,但是只允许被赋值一次。
修饰类的定义
当使用final修饰这个类的时候,这个类不能被继承,即:这个类不能有子类。
public final class TestDemo {
int a=10;
}
class B extends TestDemo{
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
修饰类中的普通方法
当使用final修饰这个类中的方法的时候,这个方法不能被重写。
public class TestDemo {
int a = 10;
public void method(){
System.out.println();
}
}
class B extends TestDemo{
@Override
public void method() {
super.method();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
当使用final修饰方法后,便不能被重写,编译器也会报错
public class TestDemo {
int a = 10;
public final void method() {
System.out.println();
}
}
class B extends TestDemo {
@Override
public void method() {
super.method();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
总结:
final关键字的功能是“限制”,当然了,限制也意味着不灵活。在编程中,过于灵活不是一件好事,意味着更容易出错。
我们要根据自己实际的需求,决定是否使用final关键字
评论(0)