首頁 >Java >java教程 >Java 中的 Super 關鍵字

Java 中的 Super 關鍵字

王林
王林原創
2024-08-30 15:44:39394瀏覽

Super 是一個關鍵字,用來呼叫超類別中的函數或方法。這將在子類別中定義。只能使用此關鍵字呼叫公共和受保護的方法。也就是說,私有方法和靜態方法不能用this來呼叫。 java 中的 super 關鍵字也可以用來呼叫父類別的建構子。 super 關鍵字的語法、範例和更多詳細資訊將在以下部分中討論。

文法

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

super.<<method-name>> or super([0 or more arguments]);

超級關鍵字在 Java 中如何運作?

正如已經提到的,super 可以在多種場合使用。

  • 引用直接父類別的實例變數。
  • 引用直接父類別的方法。
  • 引用直接父類別的建構子。

1.引用直接父類別的實例變數

如果父類別和子類別有相同的資料成員,可以使用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 關鍵字來引用父類別中的欄位。

2.引用直接父類別的方法

方法重寫是子類別宣告父類別中已有的相同函數或方法的過程。假設,如果子類別的物件呼叫該方法,則只會呼叫子類別中的方法。為了存取父方法,可以使用 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() 方法。

3.引用直接父類別的建構子

眾所周知,在建立類別的物件時會自動呼叫建構函式(預設)。 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");  } }

Java 中的超級關鍵字範例

以下是提到的不同範例:

範例#1

在下面的程式中,存在一個公共變數名,並使用 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
}
}

輸出:

Java 中的 Super 關鍵字

範例#2

程式有助於示範 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
} }

輸出:

Java 中的 Super 關鍵字

範例 #3

程式使用 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
}
}

輸出:

Java 中的 Super 關鍵字

範例#4

此程式示範了 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
}
}

輸出:

Java 中的 Super 關鍵字

結論

Super是Java中的關鍵字,用來引用父類別中的方法或函式、實例變數或屬性、建構子。如果未宣告建構函數,編譯器會自動建立預設建構函數。同樣,如果沒有聲明,編譯器會自動呼叫 super()。在這篇文件中,對 super 關鍵字的幾個方面進行了詳細的解釋。

以上是Java 中的 Super 關鍵字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn