注:默認的構造方法的訪問權限是跟隨class的訪問權限,
如果編寫一個構造方法,既沒有調用 super() 也沒有調用 this(),編譯器會自動插入一個調用到父類構造方法中,而且不帶參數。
super關鍵字的用法
-
調用父類構造方法
-
調用父類的方法
值得注意的是:
-
super()必須放在構造方法的最頂端。
-
不能在構造方法以外的任何方法內調用構造方法。
方法的重寫(覆蓋)、與重載
方法重寫的原則:
-
重寫方法在寫法上與原方法大致相同,但訪問權限不允許縮小
-
被static、final、private修飾的方法不能被重寫(靜態綁定)
Java方法重載
注:子類可以重載父類的方法,靜態方法可以被重載
特別說明:Java父類和子類中的方法都會參與重載,例如,父類中有一個方法是 func(){ ... },子類中有一個方法是 func(int i){ ... },就構成了方法的重載。
重寫和重載的不同:
-
方法重寫要求參數列表必須一致,而方法重載要求參數列表必須不一致。
-
方法重寫要求返回類型必須一致,方法重載對此沒有要求。
-
面向的方法-> 方法重寫只能用於子類覆蓋父類的方法,方法重載用於同一個類中的所有方法(包括從父類中繼承而來的方法)。
-
方法重寫對方法的訪問權限和拋出的異常有特殊的要求,而方法重載在這方面沒有任何限制。
-
父類的一個方法只能被子類重寫一次,而一個方法可以在所有的類中可以被重載多次。