Java super意思
在Java中,super
是一個關鍵字,它用於引用當前對象的父類(超類)中的方法或屬性。當子類想要訪問父類中的方法或屬性時,可以使用super
來訪問。
以下是super
關鍵字的一些常見用法:
-
訪問父類構造函式: 當子類沒有顯示地調用父類的構造函式時,Java會默認調用父類的無參構造函式。如果父類沒有無參構造函式,那么子類需要顯示地調用父類的構造函式,這可以通過
super
關鍵字來實現。public class Parent { public Parent(String name) { System.out.println("Parent constructor with name: " + name); } } public class Child extends Parent { public Child(String name) { super(name); // 調用父類的有參構造函式 } }
-
訪問父類方法: 如果子類想要重寫父類的方法,但又想要在某些情況下調用父類的方法,那麼可以使用
super
來調用父類的方法。public class Parent { public void sayHello() { System.out.println("Hello from Parent"); } } public class Child extends Parent { @Override public void sayHello() { super.sayHello(); // 調用父類的sayHello方法 System.out.println("Hello from Child"); } }
-
訪問父類屬性: 如果子類想要訪問父類的屬性,也可以使用
super
來訪問。public class Parent { private String name; public Parent(String name) { this.name = name; } } public class Child extends Parent { public void printName() { System.out.println("Child's name: " + this.name); System.out.println("Parent's name: " + super.name); // 訪問父類的name屬性 } }
需要注意的是,super
關鍵字只能在子類中使用,並且只能在子類的成員方法或構造函式中使用,不能在靜態方法中使用。此外,super
關鍵字也不能用來訪問父類的私有屬性和方法。