final关键字需要掌握以下三点:
1)final修饰的变量的值不能被改变;
2)final的方法不能被重写;
3)final的类不能被继承。
我们分条解释一下:
1)final修饰的变量的值不能被改变:
①我们定义一个类:
class T {
final int i = 9;
}
此时,下面这段代码是错误的:
public class Test {
publc static void main(String[] args) {
T t = new T();
t.i = 9; //这句话是错误的
//就算这句话是t.i = 8也是错误的,因为在“试图”改变t.i的值
}
}
②我们定义下面的这样一个方法:
public void m(final int j){
j = 9; //这句话是错误的,形参j一旦被传递进来,就不能在方法中被改变
}
2)final定义的方法不能被重写:
我们定义这样的一个类:
class T{
public final void m(){}
}
TT类从T继承:
class TT ectends T{
//正常的时候我们可以重写方法m,但此时下面这句话会出错
public void m(){}
}
3)final的类不能被继承
定义一个类
final class T{}
下面这句话是错误的
class TT extends T{}