當前位置:首頁 » 編程語言 » java繼承構造函數繼承

java繼承構造函數繼承

發布時間: 2023-09-04 10:53:50

java中子類繼承父類後 子類可以有自己的構造函數么

可以。

你不寫的話,會自動生成一個無參的構造方法。
如果父類沒有無參構造方法,子類必須寫一個構造方法裡面調用父類的構造方法。

⑵ java子類可以繼承父類的構造方法嗎

一,java子類不能繼承父類的構造方法(可以調用,但不是繼承):
1、構造方法的定義是與類的名稱相同:如果子類能夠繼承父類的構造方法,那麼在子類的構造方法中就有不同於子類名稱的構造法;
2、這與構造方法的定義不符,因此子類是不能繼承父類的構造方法的;
3、以上參考資料來源:http://bbs.csdn.net/topics/360118234

二,子類繼承父類時,需要注意以下三點:
1、在子類繼承父類的時候,子類必須調用父類的構造函數;
2、在父類有默認構造函數,子類實例化時自動調用,在父類沒有默認構造函數,即無形參構造函數,子類構造函數必須通過super調用父類的構造函數;
3、在java的繼承當中子類是不可以繼承父類的構造函數,只能調用父類的構造函數。

⑶ java中,父類的構造方法不能被子類繼承,對嗎

不對。。子類默認繼承父類的構造方法 子類創建對象時默認調用自身的空構造器,並在子類構造器中隱式的調用super() 即調用父類的空構造器,如果父類重載了構造器,那麼子類必須初始化父類構造器否則編譯錯誤!

classAnimal{
privateStringname;
//重載父類構造器
Animal(Stringname){
this.name=name;
}

}

classDogextendsAnimal{
//必須加上
//Dog(Stringname){
//super(name);
//}
}

classTest{
publicstaticvoidmain(String[]args){
Animala=newDog();
//首先調用Dog空構造器Dog(){}構造器中第一句話為super()但父類已覆蓋空構造器所以
//編譯產生錯誤應添加子類構造器初始化父類構造器
//

}
}

⑷ 關於java中子類繼承父類的構造方法

java繼承中對構造函數是不繼承的,只是調用(隱式或顯式)。
舉例說明:
public class FatherClass {

public FatherClass() {
System.out.println(100);
}
public FatherClass(int age) {
System.out.println(age);
}
}

public class SonClass extends FatherClass{
public SonClass() {
}

public SonClass(int c) {
System.out.println(1234);
}

public static void main(String[] args) {
SonClass s = new SonClass(66);

}
}
編譯後執行結果如下:
分析:SonClass s = new SonClass(66);執行這句時,調用
public SonClass(int c) {
System.out.println(1234);//系統會自動先調用父類的無參構造函數(super())
}

在這個構造函數中,等價於
public SonClass(int c) {
super();//必須是第1行,否則不能編譯
System.out.println(1234);
}
所以結果是 100 1234
3.如果子類構造函數是這樣寫的
public SonClass(int c) {
super(22);//必須是第1行,否則不能編譯
//顯式調用了super後,系統就不再調用無參的super()了;
System.out.println(1234);
}
執行結果是 22
1234
總結1:構造函數不能繼承,只是調用而已。
如果父類沒有無參構造函數
創建子類時,不能編譯,除非在構造函數代碼體中第一行,必須是第一行顯式調用父類有參構造函數
如下:
SonClass (){
super(777);//顯示調用父類有參構造函數
System.out.println(66);
}
如果不顯示調用父類有參構造函數,系統會默認調用父類無參構造函數super();
但是父類中沒有無參構造函數,那它不是不能調用了。所以編譯就無法通過了。
總結2:創建有參構造函數後,系統就不再有默認無參構造函數。
如果沒有任何構造函數,系統會默認有一個無參構造函數。

⑸ 關於JAVA繼承的問題:子類無條件地繼承父類不含參數的構造函數。這句話對還是錯為什麼。

不對的,構造函數是不能繼承的。子類可以繼承父類的所有成員變數和成員方法,但不能繼承父類的構造方法。這就意味著,子類不能用「.」來操作父類的構造方法。但實際上,子類的構造方法中一定會調用父類的構造方法,不過這種調用只是為了創建子類對象進行的初始化處理。而不會創建父類對象。可以使用super()調用父類構造方法。

熱點內容
ins怎麼保存圖片安卓 發布:2025-03-13 03:38:14 瀏覽:211
什麼資料庫快 發布:2025-03-13 03:34:38 瀏覽:50
喋血復仇加入伺服器失敗怎麼回事 發布:2025-03-13 03:33:37 瀏覽:696
萌感系列全集用什麼解壓 發布:2025-03-13 03:30:31 瀏覽:263
為什麼別人看我抖音顯示伺服器維護中 發布:2025-03-13 03:24:45 瀏覽:686
javafield反射 發布:2025-03-13 03:24:08 瀏覽:829
國服沒有腳本嗎 發布:2025-03-13 02:52:57 瀏覽:703
機器人解壓 發布:2025-03-13 02:52:18 瀏覽:956
怎麼在伺服器上部署網站 發布:2025-03-13 02:52:15 瀏覽:208
android彈出鍵盤布局 發布:2025-03-13 02:46:22 瀏覽:380