Java super的意思
在Java中,super
是一個關鍵字,它用於引用當前對象的父類(超類)中的方法或屬性。通常,super
用於在子類中調用父類中的方法或訪問父類中的屬性,或者在構造函式中調用父類的構造函式。
以下是super
的一些常見用法:
-
調用父類構造函式: 在子類的構造函式中,可以通過
super
關鍵字調用父類的構造函式。如果子類的構造函式沒有顯式地調用父類構造函式,Java會默認添加一個對父類無參構造函式的調用。如果父類沒有無參構造函式,則子類的構造函式必須顯式地調用一個父類構造函式。class Parent { public Parent(String message) { System.out.println(message); } } class Child extends Parent { public Child() { super("Parent constructor called!"); // 調用父類的構造函式 } }
-
訪問父類方法或屬性: 在子類中,如果需要訪問父類中的方法或屬性,可以使用
super
關鍵字來明確指定要訪問父類中的方法或屬性。class Parent { public void printMessage() { System.out.println("Parent's message"); } } class Child extends Parent { public void printMessage() { super.printMessage(); // 調用父類的printMessage()方法 } }
-
訪問父類中定義的變數: 如果子類中定義的變數與父類中的變數同名,可以通過
super
關鍵字來訪問父類中的變數。class Parent { String message = "Parent's message"; } class Child extends Parent { String message = "Child's message"; public void printMessage() { System.out.println(super.message); // 訪問父類中的message變數 } }
需要注意的是,super
關鍵字只能在子類中使用,並且只能在構造函式和成員方法中使用,不能在靜態方法、靜態塊或者匿名內部類中使用。此外,super
關鍵字不能用來訪問父類中的私有變數或方法。