Super 是一個關鍵字,用來呼叫超類別中的函數或方法。這將在子類別中定義。只能使用此關鍵字呼叫公共和受保護的方法。也就是說,私有方法和靜態方法不能用this來呼叫。 java 中的 super 關鍵字也可以用來呼叫父類別的建構子。 super 關鍵字的語法、範例和更多詳細資訊將在以下部分中討論。
文法
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
super.<<method-name>> or super([0 or more arguments]);
正如已經提到的,super 可以在多種場合使用。
如果父類別和子類別有相同的資料成員,可以使用Super關鍵字來存取父類別的欄位或資料成員。在這種情況下,Java 虛擬機器可能會出現歧義。
範例:
代碼:
class A { protected String name="ann"; } class B extends A { public String name="Anna"; public void hello() { System.out.println("I am " + name); System.out.println("I am " + super.name); } }
這裡,兩個類別 A 和 B 有一個共同的欄位名稱。子類別中的函數 printType() 使用 super 關鍵字來引用父類別中的欄位。
方法重寫是子類別宣告父類別中已有的相同函數或方法的過程。假設,如果子類別的物件呼叫該方法,則只會呼叫子類別中的方法。為了存取父方法,可以使用 super 關鍵字。
範例:
代碼:
class A { protected String name="ann"; public void hello() { System.out.println("I am " + name); } } class B extends A { public String name="Anna”; public void hello() { System.out.println("I am " + name); } public void test() { hello(); super.hello(); } }
這裡,兩個類別 A 和 B 有相同的方法 hello()。借助 test() 函數中的 super 關鍵字,可以存取父類別的 hello() 方法。
眾所周知,在建立類別的物件時會自動呼叫建構函式(預設)。 super 關鍵字可用於從子類別的建構子明確呼叫超類別的建構子。確保 super 僅在子類別的建構函式中使用,並且它是其中的第一個語句。
範例:
代碼:
class A { //constructor of parent class A() { System.out.println("I am Kavya Madhavan"); } } //child class class B extends A { //constructor of child class B() { super(); System.out.println("I am Dileep Menon"); } }
以下是提到的不同範例:
在下面的程式中,存在一個公共變數名,並使用 super 來呼叫父類別中的變數。
代碼:
//Java program to illustrate Super keyword to refer instance variable //parent class class A { protected String name="ann"; } //child classs class B extends A { public String name="Anna";//variable which is same in parent class //sample method public void hello() { System.out.println("I am " + name); System.out.println("I am " + super.name); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class objb.hello();//call the method in child class } }
輸出:
程式有助於示範 super 關鍵字,同時引用父類別中的相同方法。這裡,hello() 是兩個類別中都可用的方法。
代碼:
//Java program to illustrate Super keyword to refer same method in parent class //parent class class A { protected String name="ann"; public void hello() { System.out.println("I am " + name); } } //child classs class B extends A { public String name="Anna";//variable which is same in parent class //sample method which is same in parent class public void hello() { System.out.println("I am " + name); } //method to call the hello() method in parent and child class public void test() { hello(); super.hello(); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class objb.test();//call the method in child class } }
輸出:
程式使用 super 關鍵字呼叫父類別的建構子。
代碼:
//Java program to illustrate Super keyword to refer constructor in parent class //parent class class A { //constructor of parent class A() { System.out.println("I am Kavya Madhavan"); } } //child class class B extends A { //constructor of child class B() { super(); System.out.println("I am Dileep Menon"); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class } }
輸出:
此程式示範了 super 關鍵字的用法來引用父類別的參數化建構子。
代碼:
//Java program to illustrate Super keyword to refer parameterised constructor in parent class //parent class class A { //constructor of parent class A() { System.out.println("I am Kavya Madhavan"); } //parameterised constructor A(String name) { System.out.println("I am " + name); } } //child class class B extends A { //constructor of child class B() { super("Renuka"); System.out.println("I am Dileep Menon"); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class } }
輸出:
Super是Java中的關鍵字,用來引用父類別中的方法或函式、實例變數或屬性、建構子。如果未宣告建構函數,編譯器會自動建立預設建構函數。同樣,如果沒有聲明,編譯器會自動呼叫 super()。在這篇文件中,對 super 關鍵字的幾個方面進行了詳細的解釋。
以上是Java 中的 Super 關鍵字的詳細內容。更多資訊請關注PHP中文網其他相關文章!