當前位置:首頁 » 編程語言 » 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()調用父類構造方法。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726