java關鍵字:fianl的一些簡單的用法
阿新 • • 發佈:2019-01-11
引入的一個場景是:
有時候子類會去重寫父類的方法方法,但是有時候不希望子類重寫父類的方法
這個時候java 提供了一個關鍵字fianl來修飾
那麼
子類中的方法不能重寫被final修飾的方法
class Father{
public final void show(){
System.out.println("不能修改hello java");
}
}
class Son extends Father{
//編譯報錯:
//Son中的show()無法覆蓋Father中的show()
//被覆蓋的方法為final
public void show(){
System.out.println("我修改了hello java檔案");
}
}
class Test{
public static void main(String[] args){
Son s = new Son();
s.show();
}
}
final關鍵字:
意思是最終的
它可以修飾類、方法、變數
final修飾:
A:類 這個類不能別其他類繼承
B:方法 這個方法不能被子類重寫
C:變數
a:型別為基本資料類 這個變數就稱為了常量,常量一旦被賦值就不能再次賦值了,不然就報錯了
常量:字面常量 "kevin" "cidy",10,12等
自定義常量:fianl String num = "001";
b:型別為引用資料型別的時候 地址值不會改變,但是堆記憶體中的值可以進行修改
比如:
class Student{
int age =10;
}
class StuTest{
public static void main(String[] args){
Student s = new Student();
System.out.println(s.age)://輸出結果為:10;
final Student s2 = new Student();
s2.age=100;
System.out.println(s2.age);//輸出結果為100;
}
}
在修飾變數(資料型別為基本資料型別的時候)
如果這個變數被賦了初始值,那麼這個變數就不能在被賦值,不然會報錯。
public class Test3{
public static void main(String[] args){
final int a =12;
System.out.println("a = "+a);
//錯誤: 無法為最終變數a分配值
a = 21;
System.out.println("a = "+a);
}
}
有時候子類會去重寫父類的方法方法,但是有時候不希望子類重寫父類的方法
這個時候java 提供了一個關鍵字fianl來修飾
那麼
子類中的方法不能重寫被final修飾的方法
class Father{
public final void show(){
System.out.println("不能修改hello java");
}
}
class Son extends Father{
//編譯報錯:
//Son中的show()無法覆蓋Father中的show()
//被覆蓋的方法為final
public void show(){
}
}
class Test{
public static void main(String[] args){
Son s = new Son();
s.show();
}
}
final關鍵字:
意思是最終的
它可以修飾類、方法、變數
final修飾:
A:類 這個類不能別其他類繼承
B:方法 這個方法不能被子類重寫
C:變數
a:型別為基本資料類 這個變數就稱為了常量,常量一旦被賦值就不能再次賦值了,不然就報錯了
自定義常量:fianl String num = "001";
b:型別為引用資料型別的時候 地址值不會改變,但是堆記憶體中的值可以進行修改
比如:
class Student{
int age =10;
}
class StuTest{
public static void main(String[] args){
Student s = new Student();
System.out.println(s.age)://輸出結果為:10;
final Student s2 = new Student();
s2.age=100;
System.out.println(s2.age);//輸出結果為100;
}
}
在修飾變數(資料型別為基本資料型別的時候)
如果這個變數被賦了初始值,那麼這個變數就不能在被賦值,不然會報錯。
public class Test3{
public static void main(String[] args){
final int a =12;
System.out.println("a = "+a);
//錯誤: 無法為最終變數a分配值
a = 21;
System.out.println("a = "+a);
}
}