final是Java中的一个关键字,表示最终的,是不可变的。
final可以用于修饰变量、方法和类。其中注意:
- final修饰的变量只能赋一次值;
- final修饰的方法不能被覆盖,不能被重写;
- final修饰的类不能继承
具体例子见下:
1、final修饰的变量
public static void main(String[] args){
final int k = 100;//定义变量k,用final修饰并赋值
//重新赋值
k = 300;// 报错
final int m;//定义变量m,用final修饰
m=200;//第一次赋值———可以
m=300;//第二次赋值——不可以
}
对final修饰的变量进行赋值,编译运行,控制台输出错误如下,由此可见final修饰的变量只能赋一次值,第二次赋值就会出错。
2、final修饰的方法
class c{//定义类c
public final void doSome(){//定义方法doSome,用final修饰
System.out.println("c start");
}
}
class d extends c{//定义类d继承c
public void doSome(){//对父类doSome()方法覆盖
System.out.println("d start");
}
}
对final修饰的方法进行方法覆盖,编译运行后控制台输出如下,可看到报错。因此无法对final修饰的方法进行方法覆盖
3、final修饰的类
final class A{//定义类A,并用final修饰
}
class B extends A{//定义B类继承A类
}
类加上final修饰后,如果使用继承编译运行如下,输出报错无法继承。