亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問下在java中的super()是什么?

請問下在java中的super()是什么?

慕勒3428872 2022-04-15 10:11:29
是不是什么類中的方法在創建窗口中使用的super
查看完整描述

3 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

要說super就先要說this。
"this",作為一個特殊的關鍵字,它的規則如下:
1。可以表示構造函數傳遞。this(a,b)表示調用另外一個構造函數。這里面的this就是一個特殊語法,不是變量,沒有什么類型。
2??梢栽谝粋€類的非static成員內部使用,表示當前這個對象。此時,this就是一個final的普通變量,它有靜態類型,就是這個類C本身;它有動態類型,就是當前這個對象的類型。你可以對它調用成員函數,把它傳遞給別的函數,等等等等。只要一個C類型的final變量可以出現的地方,它就可以出現。

"super"。它和"this"類似,但是也有不同的地方。
1。表示調用父類的構造函數。也是一個特殊語法,不是變量,沒有什么類型。

2??梢栽谝粋€類的非static成員內部使用。比如super.method()。
但是,注意,這個super.method()只是長得跟some_var.method()一樣,一個語法糖而已。實質上,"super"根本不是一個變量。

為什么不是?因為如果是就壞了。java里面有一個金科玉律:任何public非static函數的調用都是多態的。
所以,如果super是個變量,也指向當前對象,那么,不管super的靜態類型是什么super.method()必然調用的是子類的那個版本,而不會是我們期望的,靜態地選擇父類的那個版本。

所以,你只要把super.xxx看成一個特殊的語法,比如理解為“super::xxx”就好了。

既然super不是一個變量,那么不能把它象一個普通變量那樣"==",或者傳遞給某個函數就看起來很正常了,是么?何況,你其實也用不著它,有this你這些要求就都可以辦到了。

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



查看完整回答
反對 回復 2022-04-19
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

1)super(參數):調用基類中的某一個構造函數(應該為構造函數中的第一條語句)
2)this(參數):調用本類中另一種形成的構造函數(應該為構造函數中的第一條語句)
3)super: 它引用當前對象的直接父類中的成員(用來訪問直接父類中被隱藏的父類中成員數據或函數,基類與派生類中有相同成員定義時如:super.變量名 super.成員函數據名(實參)
4)this:它代表當前對象名(在程序中易產生二義性之處,應使用this來指明當前對象;如果函數的形參與類中的成員數據同名,這時需用this來指明成員變量名)

5)調用super()必須寫在子類構造方法的第一行,否則編譯不通過。每個子類構造方法的第一條語句,都是隱含地調用super(),如果父類沒有這種形式的構造函數,那么在編譯的時候就會報錯。
   6)super()和this()類似,區別是,super()從子類中調用父類的構造方法,this()在同一類內調用其它方法。
   7)super()和this()均需放在構造方法內第一行。
   8)盡管可以用this調用一個構造器,但卻不能調用兩個。
   9)this和super不能同時出現在一個構造函數里面,因為this必然會調用其它的構造函數,其它的構造函數必然也會有super語句的存在,所以在同一個構造函數里面有相同的語句,就失去了語句的意義,編譯器也不會通過。
   10)this()和super()都指的是對象,所以,均不可以在static環境中使用。包括:static變量,static方法,static語句塊。
   11)從本質上講,this是一個指向本對象的指針, 然而super是一個Java關鍵字


查看完整回答
反對 回復 2022-04-19
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

?super關鍵字也有兩種意義:–調用父類的方法–調用父類的構造器?但是,super并不表示一個指向對象的引用,它只是一個特殊的關鍵字,用來告訴編譯器,現在要調用的是父類的方法。

查看完整回答
反對 回復 2022-04-19
  • 3 回答
  • 0 關注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號