首頁(yè) > 專(zhuān)家說(shuō)

SUPER是JAVA中父類(lèi)重寫(xiě)時(shí)要寫(xiě)的嗎?如果是的話(huà),我重寫(xiě)為什么還要用SUPER繼承父類(lèi)的構(gòu)造方法?

來(lái)源:新能源網(wǎng)
時(shí)間:2024-08-17 13:28:25
熱度:

SUPER是JAVA中父類(lèi)重寫(xiě)時(shí)要寫(xiě)的嗎?如果是的話(huà),我重寫(xiě)為什么還要用SUPER繼承父類(lèi)的構(gòu)造方法?【專(zhuān)家解說(shuō)】:super和this這兩個(gè)關(guān)鍵字非常相像,我個(gè)人總結(jié)super有

【專(zhuān)家解說(shuō)】:super和this這兩個(gè)關(guān)鍵字非常相像,我個(gè)人總結(jié)super有3種用法:
1.調(diào)用超類(lèi)中被子類(lèi)重載的方法,如果向下面的代碼
class A
{
void func() { }
}
class B extends A
{
void func() { }
}

如果B想要調(diào)用A中的func方法怎么辦?必須這樣super.func()才可以。

2.調(diào)用跟子類(lèi)中成員變量同名的超類(lèi)成員變量。如 super.成員變量名。當(dāng)然,如果父類(lèi)的成員變量沒(méi)有被覆蓋,也可以用“super.成員變量名”來(lái)引用父類(lèi)成員變量,不過(guò)這是不必要的。

3.調(diào)用超類(lèi)的構(gòu)造函數(shù)。例如在swing編程中我們經(jīng)常這么做
class Myframe extends Jframe
{
public Myframe()
{
super("MY frame"); //這個(gè)必須 方法中的第一行,否則報(bào)錯(cuò)。
.........
}
}
super調(diào)用超類(lèi)的構(gòu)造函數(shù)時(shí),必須放在方法中的第一行,謹(jǐn)記。

寫(xiě)了十幾分鐘,望采納!