java中的super關鍵字用途 super關鍵字的3種用法開發必備技能!

super關鍵字在Java中有三種主要用途:1.使用super.變量名訪問父類成員變量,解決子類與父類變量名沖突;2.通過super()調用父類構造方法,必須位于子類構造方法的第一條語句;3.使用super.方法名()調用父類方法,適用于擴展或修改父類方法功能。這三種用法分別用于訪問父類屬性、初始化繼承屬性和擴展父類行為,是掌握java繼承機制的關鍵技能。

java中的super關鍵字用途 super關鍵字的3種用法開發必備技能!

super 關鍵字主要用于訪問父類的成員變量、調用父類的構造方法和訪問父類的方法。掌握它對于理解和使用 Java 的繼承特性至關重要。

java中的super關鍵字用途 super關鍵字的3種用法開發必備技能!

super 關鍵字在 Java 中就像一扇通往父類的門,讓我們能夠在子類中訪問和使用父類的東西。但具體怎么用,什么時候用?這就是我們需要深入探討的。

java中的super關鍵字用途 super關鍵字的3種用法開發必備技能!

super 關鍵字的 3 種用法開發必備技能!

立即學習Java免費學習筆記(深入)”;

java中的super關鍵字用途 super關鍵字的3種用法開發必備技能!

如何在子類中訪問父類的成員變量?

當子類中定義了與父類同名的成員變量時,使用 super.變量名 可以明確訪問父類的成員變量。這在解決變量名沖突時非常有用。舉個例子,假設我們有一個 Animal 類和一個 Dog 類,它們都有一個 name 變量。

class Animal {     String name = "Animal"; }  class Dog extends Animal {     String name = "Dog";      void printNames() {         System.out.println("Dog's name: " + name); // 輸出 Dog 的 name         System.out.println("Animal's name: " + super.name); // 輸出 Animal 的 name     } }  public class Main {     public static void main(String[] args) {         Dog dog = new Dog();         dog.printNames();     } }

這段代碼會輸出:

Dog's name: Dog Animal's name: Animal

這里,super.name 讓我們能夠訪問 Animal 類中的 name 變量,即使 Dog 類也有一個同名的變量。

如何在子類中調用父類的構造方法?

使用 super() 可以調用父類的構造方法。這通常用于在子類的構造方法中初始化從父類繼承的屬性。需要注意的是,super() 必須是子類構造方法中的第一條語句。

class Animal {     String name;      Animal(String name) {         this.name = name;         System.out.println("Animal constructor called with name: " + name);     } }  class Dog extends Animal {     String breed;      Dog(String name, String breed) {         super(name); // 調用父類的構造方法         this.breed = breed;         System.out.println("Dog constructor called with breed: " + breed);     } }  public class Main {     public static void main(String[] args) {         Dog dog = new Dog("Buddy", "Golden Retriever");     } }

這段代碼會輸出:

Animal constructor called with name: Buddy Dog constructor called with breed: Golden Retriever

可以看到,在 Dog 類的構造方法中,我們首先使用 super(name) 調用了 Animal 類的構造方法,初始化了 name 屬性,然后才初始化了 Dog 類自己的 breed 屬性。如果忘記調用 super(),或者把它放在了構造方法的其他位置,編譯器會報錯。

如何在子類中訪問父類的方法?

使用 super.方法名() 可以調用父類的方法。這在子類需要擴展或修改父類方法的功能時非常有用。例如,如果子類需要執行父類的方法,然后再執行一些額外的操作,就可以使用 super 關鍵字。

class Animal {     void makeSound() {         System.out.println("Generic animal sound");     } }  class Dog extends Animal {     @Override     void makeSound() {         super.makeSound(); // 調用父類的 makeSound 方法         System.out.println("Woof!"); // 擴展父類方法的功能     } }  public class Main {     public static void main(String[] args) {         Dog dog = new Dog();         dog.makeSound();     } }

這段代碼會輸出:

Generic animal sound Woof!

這里,Dog 類的 makeSound 方法首先使用 super.makeSound() 調用了 Animal 類的 makeSound 方法,然后才輸出了 “Woof!”,實現了對父類方法的擴展。

super 和 this 的區別是什么?

super 和 this 都是 Java 中的關鍵字,但它們的作用完全不同。super 用于訪問父類的成員,而 this 用于訪問當前類的成員。super 可以用來調用父類的構造方法,而 this 可以用來調用當前類的其他構造方法。總的來說,super 關注的是繼承關系,而 this 關注的是當前對象

什么時候應該使用 super 關鍵字?

當你需要在子類中訪問或使用父類的成員時,就應該使用 super 關鍵字。具體來說,以下幾種情況是使用 super 的常見場景:

  • 當子類中定義了與父類同名的成員變量,需要明確訪問父類的成員變量時。
  • 當需要在子類的構造方法中調用父類的構造方法時。
  • 當子類需要擴展或修改父類方法的功能,需要在子類方法中調用父類方法時。

總之,super 關鍵字是 Java 繼承機制中一個非常重要的組成部分,掌握它可以幫助你更好地理解和使用 Java 的繼承特性。理解了 super,就能更好地駕馭 Java 的面向對象編程。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享