標籤:中繼 初始化 final 重新定義 ext 聯絡 沒有 style 改變
final
final可以用來修飾變數(包括類屬性、對象屬性、局部變數和形參)、方法(包括類方法和對象方法)和類。
修飾類:
不能被定義為抽象類別或是介面,用final修飾的類不能被繼承,即不能擁有自己的子類。
修飾方法:
此方法不能被重寫(可以重載多個final修飾的方法)。
此處需要注意的一點是:因為重寫的前提是子類可以從父類中繼承此方法,如果父類中final修飾的方法同時存取控制許可權為private,
將會導致子類中不能直接繼承到此方法,因此,此時可以在子類中定義相同的方法名和參數,此時不再產生重寫與final的矛盾,而是在子類中重新定義了新的方法。
修飾變數:
final修飾的變數值不可被改變,當final修飾屬性時,基礎資料型別 (Elementary Data Type)的屬性將成為常量,不能被修改。修飾的類屬性和變數屬性都要進行顯示初始化賦值。
屬性:定義就必須直接賦值或者在構造方法中進行賦值,並且後期都不能修改。
在聲明時同時賦值,往往與static一起使用
聲明時不賦值,必須在構造方法中逐一賦值
總的原則:保證建立每一個對象的時候,final屬性的值是確定的
final關鍵字不同於finally關鍵字,後者用於異常處理。
繼承
繼承就是子類繼承父類的特徵和行為,使得子類對象(執行個體)具有父類的執行個體域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
繼承的特性
子類擁有父類非private的屬性,方法。
子類可以擁有自己的屬性和方法,即子類可以對父類進行擴充。
子類可以用自己的方式實現父類的方法。
Java的繼承是單繼承,但是可以多重繼承,單繼承就是一個子類只能繼承一個父類,多重繼承就是,例如A類繼承B類,B類繼承C類,所以按照關係就是C類是B類的父類,B類是A類的父類,這是java繼承區別於C++繼承的一個特性。
提高了類之間的耦合性(繼承的缺點,耦合度高就會造成代碼之間的聯絡)。
繼承關鍵字
extends關鍵字:在 Java 中,類的繼承是單一繼承,也就是說,一個子類只能擁有一個父類,所以 extends 只能繼承一個類。
super關鍵字:我們可以通過super關鍵字來實現對父類成員的訪問,用來引用當前對象的父類。
this關鍵字:指向自己的引用。 final 關鍵字:聲明類可以把類定義為不能繼承的,即最終類;或者用於修飾方法,該方法不能被子類重寫
構造器
子類不能繼承父類的構造器(構造方法或者建構函式),但是父類的構造器帶有參數的,則必須在子類的構造器中顯式地通過super關鍵字調用父類的構造器並配以適當的參數列表。
如果父類有無參構造器,則在子類的構造器中用super調用父類構造器不是必須的,如果沒有使用super關鍵字,系統會自動調用父類的無參構造器。
Java知識點總結(8)