在Java中,final修饰符可以修饰类、属性和方法,final有“最终”、“不可更改”的含义,所以在使用final关键字时需要注意以下几点:
-
使用final修饰类,则该类就为最终类,最终类不能被继承。
-
使用final修饰方法,则该方法不能被子类覆盖。
-
使用final修饰变量的变量是常量,常量不可修改。
1. final修饰类
使用final修饰类,则该类就为最终类,最终类不能被继承。
public final class Person {}
由abstract修饰的类是需要被继承的,而由final修饰的类是不能被继承的,所以final和abstract不能在定义类时同时使用。
2. final修饰方法
使用final修饰方法,则该方法不能被子类覆盖。
public class Person {public final void hello(){System.out.println("hello");}}
3. final修饰变量
使用final修饰变量,可以修饰基本类型和引用类型。
基本类型,表示基本变量数据值不能改变,只能一次赋值以后不能被修改。
引用类型,引用类型地址值不能再改变,即不能再次执行new操作;引用类型的值可以改变。
public class TestDemo {@Testpublic 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]; 异常}
}