乙個類中如果沒有構造方法,預設有乙個無參構造方法,其結構為:
public 類名(
)
建立乙個父類與子類:
//父類
public
class
father
}
//子類
public
class
sonextends
father
}
public
class
test
}
則此時輸出結果為:父類構造方法 子類構造方法。
若構造方法中有存在this(),則該行**必須放在有效**行的第一行,且用於呼叫本類構造方法。故this()與super()只能存在其中乙個。
public 類名(
)
子類**變為:
public
class
sonextends
father
public
son(string letter)
}
則輸出為:父類構造方法 a 子類構造方法。
若子類構造方法沒有指明呼叫本類構造方法或父類構造方法,則預設呼叫父類無參構造方法:
//子類
public
class
sonextends
father
}
此時結果輸出不變。
1)如果父類有無參構造方法(隱式或顯式),並且子類構造方法沒有指明呼叫父類哪乙個構造方法,那麼子類中沒有呼叫該子類其他構造方法的構造方法使用super()呼叫父類無參構造方法;
2)如果父類沒有無參構造方法,則要求子類必須明確或間接指定呼叫父類的哪個方法。
父類構造方法對子類構造方法影響
1 乙個類中如果沒有定義構造方法,預設有乙個無參構造方法,其結構如下 public 類名 其中super 關鍵字可以省略不寫,缺省會呼叫父類無參構造方法。需要注意的是,如果乙個類中定義了乙個有參構造方法,則無參構造方法不再贈送,需要自行編寫。2 this 引數列表 呼叫本類構造方法,但必須放在有效 ...
父類構造方法對子類構造方法的影響
當乙個子類繼承它的父類時,子類除了在屬性和方法上受到父類影響,在構造方法上也會受到父類影響。首先,我們如果想在子類的構造方法中呼叫父類的構造方法,應該用super 如下 父類 public class father 子類 但是如果我們把上段 中的super 去掉再執行,發現執行結果還是和上面一樣,這...
父類構造方法對子類構造方法的影響
此時有子類在繼承父類時,第五行被注釋掉的 無論寫還是不寫,都會呼叫父類的無參構造方法。現在我們先看如下 package com.jd.service public class father package com.jd.service public class son extends father ...