溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中super關鍵字的作用是什么

發布時間:2021-01-20 14:40:02 來源:億速云 閱讀:1169 作者:Leah 欄目:開發技術

這篇文章給大家介紹java中super關鍵字的作用是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1.說明

super相當于是指代當前的對象的父類,調用父類的屬性、方法和構造方法

2.用法

(1)super.變量/對象名;

使用這種方法可以直接訪問父類中的變量或對象,進行修改賦值等操作

(2)super.方法名();

直接訪問并調用父類中的方法

(3)super();

調用父類的初始化方法,其實就是調用父類中的public xxx()方法,通常第三種指代的是super()的省略寫法,系統會默認添加此句。

特殊情況:如果父類沒有無參的構造函數,所以子類需要在自己的構造函數中顯示的調用父類的構造函數,即不能使用系統默認的“super()”,而需要顯性寫出super(xxx)

3.注意事項

(1)表示調用父類的構造函數。也是一個特殊語法,不是變量,沒有什么類型。

(2)可以在一個類的非static成員內部使用。比如super.method()。

但是,注意,這個super.method()只是長得跟some_var.method()一樣,一個語法糖而已。實質上,"super"根本不是一個變量。

(3)super的另外一個作用是調用父類的protected函數。只有通過"super"這個魔咒,我們才能操作父類的protected成員,別無它法。

4.實例

class Person{
  private String name;
  private int age;
  public Person(String name){
    this.name = name;
  }
  public Person(String name, int age){
    this(name);  //this調用構造方法必須放在第一行,這里這樣寫是為了避免代碼重復
    this.age = age;
  }
  public Person(){
    System.out.println("1.Person類的構造方法");
  }
}
class Student extends Person{
  private String school;
  public Student(){
    super("yy");
    System.out.println("Student類的構造方法");
  }
  public Student(String school){
    this();
    //super("yy");  //對super的調用必須在構造方法的第一行
    System.out.println("2.Student類的構造方法");
  }
}
public class Day6{
  public static void main(String[] args){
    Student stu = new Student("beida");
  }
}

知識點擴展:

java Super 用法詳解

1)有人寫了個很好的初始化屬性的構造函數,而你僅僅想要在其中添加另一些自己新建屬性的初始化,這樣在一個構造函數中調用另外一個構造函數,可以避免重復的代碼量,減少工作量;

2)在一個構造函數中調用另外一個構造函數的時候應該用的是同一塊內存空間,在默認的構造函數中先初始化變量,調用另一個的時候覆寫已經初始化的變量的值;

3)整個調用的過程和遞歸調用函數有點類似,不斷充氣球,直到整個氣球膨脹起來,不斷的深層遞進,遇到停止標記,逐層的跳出來。

關于java中super關鍵字的作用是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女