final 關鍵字簡述
final:最終
1.final 修飾類
final 修飾的類不能被繼承
/*** final修飾的類 不能被繼承* @author **/
public final class A {
}
//不能被繼承,此處報錯
//class B extends A{
//
//}
2.final修飾方法
final 修飾的方法不能被重寫
/*** final 修飾的方法 不能被重寫* @author **/
public class C {public final void m1() {}public void m2() {}public void m3() {}}
class D extends C{//此處報錯,不能被重寫
// private void m1() {
//
// }@Overridepublic void m2() {super.m2();}@Overridepublic void m3() {super.m3();}
}
3.final 修飾屬性
1.使用final修飾的屬性,稱為
常量
,常量可以在定義的時候賦值(基本就用這個賦值),也可以在構造方法中賦值(只能賦值一次 ,且不能改變)2.定義常量時,常量名稱全部大寫,多個單詞用下劃線分割
注意:一般定義常量時也會使用static修飾
1.static final 修飾的稱為靜態常量:內存中只存在一份,值不能被改變,在定義時和構造方法中賦值
/*** * @author **/
public class E {public final static double PI;private String name;static {PI = 3.14;}//不能重復定義
// static {
// PI = 3.14;
// }public final double PI_1;public E(){PI_1 = 3.14;}public E(String name) {PI_1 = 3.14;}//每創建一次 就會產生一次PI_1 但是用靜態修飾的final PI 只會在加載類時加載一次E e1 = new E();E e2 = new E();// 在定義時賦值,此處構造方法內出錯
// public final double PI_2;
// public E(){
// PI_2 = 3.14;
// }
}