final 通常是指“无法改变的事”。下面就介绍final在类,方法,变量中的用法。
1.final可以修饰类,该类不能被继承。
2.final可以修饰方法,该方法不能被重写。
class Fu {
public final void show() {
}
}
class Zi extends Fu {
// Zi中的show()无法覆盖Fu中的show()
public void show() {
}
}
class FinalDemo {
public static void main(String[] args) {
Zi z = new Zi();
z.show();
}
}
3.final修饰变量,该变量是一个常量。
对于基本类型final使数值恒定不变。
引用类型 地址值不能发生改变,但是对象的内容是可以改变的
1 class Student {
2 int age = 10;
3 }
4
5 class FinalTest {
6 public static void main(String[] args) {
7 //局部变量是基本数据类型
8 int x = 10;
9 x = 100;
10 System.out.println(x);
11 final int y = 10;
12 //无法为最终变量y分配值
13 //y = 100;
14 System.out.println(y);
15 System.out.println("--------------");
16
17 //局部变量是引用数据类型
18 Student s = new Student();
19 System.out.println(s.age);
20 s.age = 100;
21 System.out.println(s.age);
22 System.out.println("--------------");
23
24 final Student ss = new Student();
25 System.out.println(ss.age);
26 ss.age = 100;
27 System.out.println(ss.age);
28
29 //重新分配内存空间
30 //无法为最终变量ss分配值
31 ss = new Student();
32 }
33 }