在Java中,final修饰符可以修饰类、属性和方法,final有“最终”、“不可更改”的含义,所以在使用final关键字时需要注意以下几点:
使用final修饰类,则该类就为最终类,最终类不能被继承。
使用final修饰方法,则该方法不能被子类覆盖。
使用final修饰变量的变量是常量,常量不可修改。
使用final修饰类,则该类就为最终类,最终类不能被继承。
- public final class Person {
-
- }

由abstract修饰的类是需要被继承的,而由final修饰的类是不能被继承的,所以final和abstract不能在定义类时同时使用。

使用final修饰方法,则该方法不能被子类覆盖。
- public class Person {
-
- public final void hello(){
- System.out.println("hello");
- }
-
- }

使用final修饰变量,可以修饰基本类型和引用类型。
基本类型,表示基本变量数据值不能改变,只能一次赋值以后不能被修改。
引用类型,引用类型地址值不能再改变,即不能再次执行new操作;引用类型的值可以改变。
- public class TestDemo {
- @Test
- public void test(){
- //final修饰基本类型,只能一次赋值以后不能被修改
- final int num;
- num = 1; //等价于final int num = 1;
- System.out.println(num);
- // num = 2; 异常
-
- //final修饰引用类型,引用类型地址值不能再改变,即不能再次执行new操作;引用类型的值可以改变。
- final int[] nums = new int[2];
- nums[0] = 1;
- nums[1] = 2;
- System.out.println(nums[0]);
- System.out.println(nums[1]);
- nums[0] = 3;
- nums[1] = 4;
- System.out.println(nums[0]);
- System.out.println(nums[1]);
- // nums = new int[3]; 异常
- }
- }