更新時間:2020-07-16 16:35:30 來源:動力節點 瀏覽1849次
一、final關鍵字的功能概述
final關鍵字可以用來修飾引用、方法和類。
1、用來修飾一個引用
如果引用為基本數據類型,則該引用為常量,該值無法修改;
如果引用為引用數據類型,比如對象、數組,則該對象、數組本身可以修改,但指向該對象或數組的地址的引用不能修改。
如果引用時類的成員變量,則必須當場賦值,否則編譯會報錯。
例子如下所示:
final?class?Person?{
????String?name?="zs";????//3.?此處不賦值會報錯
????//final?int?age;
????final?int?age?=?10;??
}
public?class?Demo01?{
????public?static?void?main(String[]?args)?{????????//1.?基本數組類型為常量,無法修改
????????final?int?i?=?9;
????????//i?=?10;???????????????//2.?地址不能修改,但是對象本身的屬性可以修改
????????Person?p?=?new?Person();
????????p.name?=?"lisi";
????????final?int[]?arr?=?{1,2,3,45};
????????arr[3]?=?999;
????????//arr?=?new?int[]{1,4,56,78};
????}
}
2.用來修飾一個方法
當使用final修飾方法時,這個方法將成為最終方法,無法被子類重寫。但是,該方法仍然可以被繼承。
class?Person?{
????public?final?void?say()?{
????????System.out.println("說....");
????}
????public?void?eat()?{
????????System.out.println("吃...");
????}
}
class?Teacher?extends?Person?{
????//1.?final修飾的方法不能被重寫,但此方法仍然被繼承
????/*@Override
????public?void?say()?{
????????System.out.println("老師在一本正經的說...");
????}*/
????
????public?void?eat()?{
????????System.out.println("老師在大口大口的吃...");
????}
}
public?class?Demo02?{
????public?static?void?main(String[]?args)?{
????????Teacher?t?=?new?Teacher();
????????t.say();
????}????
}
3.用來修飾類
當用final修改類時,該類成為最終類,無法被繼承。簡稱為“斷子絕孫類”。
/***
?*?final用法3:修飾類,則該類成為最終類,無法被繼承
?*?@author?Administrator
?*
?*/
final?class?Person02?{????}
//class?Teacher02?extends?Person02?{?}
//class?MyString?extends?String{}
public?class?Demo03?{
}
以上就是動力節點java培訓機構的小編針對“Java基礎編程中final關鍵詞的作用”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習