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

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:647
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:939
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:634
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:823
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:734
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1069
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:302
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:163
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:855
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:765