java中的关键字-final

1.概述
在Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”。

**final 标记的类不能被继承 。**提高安全性,提高程序的可读性。
String类、System类、StringBuffer类

final 标记的方法不能被子类重写。
比如:Object类中的getClass()。

final 标记的变量( 成员变量或局部变量) 即称为常量 。名称大写,且只能被赋值一次。

final标记的成员变量必须在声明时或在每个构造器中或代码块中显式赋值,然后才能使用。
final double MY_PI = 3.14;

2.final修饰类

final class A{
}
class B extends A{ //错误,不能被继承。
}

中国古代,什么人不能有后代,就可以被final声明,称为“太监类”!

3.final修饰方法

class A {
	public final void print() {
		System.out.println("A");
	}
}
class B extends A {
	public void print() { // 错误,不能被重写。
		System.out.println("尚硅谷");
	}
}

3.final修饰的方法

class A {
	public final void print() {
		System.out.println("A");
	}
}
class B extends A {
	public void print() { // 错误,不能被重写。
		System.out.println("尚硅谷");
	}
}

4.final 修饰变量——常量

class A {
	private final String INFO = "atguigu"; //声明常量
		public void print() {
	//The final field A.INFO cannot be assigned
	//INFO = "尚硅谷";
	}
}

常量名要大写,内容不可修改。——如同古代皇帝的圣旨。
static final:全局常量

5.关键字final应用

public final class Test {
	public static int totalNumber = 5;
	public final int ID;
	public Test() {
		ID = ++totalNumber; // 可在构造器中给final修饰的“变量”赋值
	}
	public static void main(String[] args) {
		Test t = new Test();
		System.out.println(t.ID);
		final int I = 10;
		final int J;
		J = 20;
		J = 30; // 非法
	}
}

6.面试题
java中的关键字-final_java