final关键字的用法

时间:2023-11-30 21:37:50

final关键字的作用

1.被final修饰的类不能被继承

报错信息:cannot inherit from final 'com.dajia.test.Animal'

2.被final修饰的方法不能被重写

报错信息:'eat()' cannot override 'eat()' in 'com.dajia.test.Animal'; overridden method is final

3.被final修饰的变量不能被改变

变量的引用不能改变?变量引用所指向的内容不能改变?

举例:

 public class FinalTest {
private String str; public FinalTest(String str){
this.str = str;
} public String getStr() {
return str;
} public void setStr(String str) {
this.str = str;
}
} //测试
public class TestController { public static void main(String[] args) {
final FinalTest finalTest = new FinalTest("111");
finalTest.setStr("222");
System.out.println(finalTest.getStr());
} }

结果:

222

说明final修饰的变量所指向的内容可以被修改

 public class TestController {

     public static void main(String[] args) {
final FinalTest finalTest = new FinalTest("111");
/*finalTest.setStr("222");*/
final FinalTest finalTest1 = new FinalTest("222");
finalTest = finalTest1;  
System.out.println(finalTest.getStr());
} }

第六行编译报错:

报错信息:cannot assign a value to final variable 'finalTest'

结论:final修饰的变量的引用不能被改变,变量引用所指向的内容可以被改变。