java 之 繼承 super關鍵籽 this關鍵字 final關鍵字
繼承
語法:
使用 extends 來繼承
class子類 extends父類{
子類屬性
子類方法
}
繼承的特點:
1、子類會把父類所有的屬性和方法繼承下來,final修飾的類是不可以被繼承的
2、子類還可以·擁有自己獨特的屬性和方法
3、父類更通用,子類更具體
4、子類只能獲得父類中非private的屬性,如果想要繼承就得提供公共的set和get方法
私有的方法是無法繼承下來的
5、java中只能做單繼承
6、Java支援多級繼承
繼承的好處:提高程式碼的複用性
super關鍵字
1、子類例項化的過程中父類的構造器先被呼叫,然後在呼叫子類的構造器
2、子類 的構造器內被呼叫的時候父類的預設構造器就會被呼叫(父類如果存在著有引數
的構造器,一定要把預設構造器顯式的定義出來,否者會被覆蓋)
3、子類在呼叫父類有引數的構造器的時候使用 super(引數列表…)這這時父類的預設
構造器就不會被呼叫了
4、super()的呼叫必須放在方法的第一行
5、super可以表示父類的引用,我們可以使用super和this來區分父類和子類中同的屬性。在子類中訪問屬性的查詢順序首先在子類中查詢指定的屬性名字,如果在子類中沒有該屬性,那麼就去父類中去查詢該屬性。方法也是一樣的當子類和父類有同樣的方法時通過子類呼叫的這個相同的方法時呼叫的是子類的方法。但是我們也可以通過super對父類的引
來呼叫父類的方法。
this關鍵字
1、代表當前類的指定例項和引用
2、可以區分同名屬性和區域性變數
3、通過this可以呼叫同類中的構造器(this(),this(引數列表))
4、呼叫本類裡面的屬性,this.屬性名,this.方法()
final關鍵字
屬性上
final修飾在屬性上,屬性的值就不能被改變
語法:
許可權修飾符 static final 資料型別 屬性名 = 值
屬性名一般使用採用大寫,多個單詞使用下劃線來分隔。而且這種常量多定義在介面中
方法上
final修飾的方法不能被複寫
語法:
許可權修飾符 final 返回值型別 方法名(引數列表){
方法體
}
類上
使用final來修飾的類是不可以被繼承的
語法:
final class 類名{
}
在類中所有的private方法都隱式的指向final,可以說private、final修飾的方法在此時的效果是相同的
使用final的原因
1、鎖定
2、效率
詳見《java程式設計思想》