導航:首頁 > 編程語言 > java中父類子類

java中父類子類

發布時間:2023-03-10 21:41:58

java中 子類與父類構造方法的關系 個人理解

編寫JAVA作業時在繼承的環節發現了一些錯誤,希望總結一些規律:(以下全部屬於自己歸納,可能有問題)
一句話概括就是:子類一定會調用(不是繼承)父類的構造方法!
即遵循一個原則:子類的構造一定是在父類已構造的基礎上!
這句話要分為幾種情況來理解(下面只討論父類有構造函數):
子類構造函數自動調用super() (也可以手動加上)
但如果父類只有含參數的構造方法,那麼子類必須申明一個構造方法,其中包含對super(args)的調用
一、父類含有無參構造函數
1、子類沒有構造方法或者含有無參的構造方法:
這種情況,都會默認地調用super()
2、子類含有有參數構造方法:
同樣會在首句默認調用super() //其實跟情況1類似
二、父類含有含參數的構造方法,不含無參數的構造方法:
子類沒得選擇:
子類必須申明一個構造方法(且含super的args),且方法里要首先調用super(args),否則報錯。
三、父類含 含參數的構造方法和無參的構造方法:
此時子類可以選擇性調用:
可以無構造方法:仍會默認調用super()
也可以有構造方法:其中會默認地調用super(),你也可以在開頭加上這句,如果你不希望調用父類默認的無參方法,那麼在 子類構造方法 中調用 父類含參構造方法。
上述看似情況復雜,其實基於其原則理解並不難。
綜上:java為了保持 子類的構造基於父類的構造 這一原則,子類構造時必須通過某些方式首先調用父類的構造方法,否則會報錯。

② Java在父類中如何創建子類對象

你好,很高興回答你的問題。
可以進行如下修改,將breed的實現移到抽象父類Animal中,略做修改,修改後代碼如下
public Animal breed(){
Animal ret =null;
if(isBreedable() &&Math.random()<getValue()){
ret=getAnimal();
}
return ret;
}
父類Animal中增加如下兩個抽象方法:
public abstract double getValue();
public abstract Animal getAnimal();
在Fox中不再需要實現breed,實現新定義的兩個方法:
public abstract double getValue(){
return 0.5;
}
public abstract Animal getAnimal(){
return new Fox();
}
在Rabbit類中類似處理:
public abstract double getValue(){
return 0.12;
}
public abstract Animal getAnimal(){
return new Rabbit();
}
如果有幫助到你,請點擊採納。
我解答的大部分是軟體開發新人遇到的問題,如果有興趣可以關注我。

③ 在java 中,什麼叫父類,什麼叫子類

父類和子類,就例如:老子和兒子,有著父子關系。而這里指的父子關系,其實也就是一種包含關系。打個比方,在我們現實生活中,學生Student是一個很大的概念,而U_Student大學生是屬於學生中的一種,這里的學生即為父類,大學生即為子類。
父類和子類區別在哪?
學生和大學生都會有學習Study這個方法,但是大學生還會有自己特有的Study方法,兩者還是有一定區別的,大學生的學習相較於其他學生來說,是更自由的。假如現在已經有一個學生(Student)類,然後我還要寫一個大學生(U_Student)類,然後大學生UStudent類里有很多方法和Student里的方法都相同,但是還是有一小部分不同,怎樣解決呢?難道還要重新寫一個大學生類,並且重復敲一遍和學生類中一樣的代碼嗎?那樣浪費了時間和精力,並且浪費了存儲空間,是很不劃算的。所以,就有了「繼承」。
子類繼承父類,就是子類能引用父類中的某些東西。繼承的關鍵字是extends,
例如:
public class Student(){}//父類
public class U_Student extends Student(){}//子類繼承了父類
當子類和父類用一個同名方法,但是子類的實現卻和父類不同,用到"方法重寫"。
重寫是指方法定義相同,但是實現不同,存在於父子類之間。
例如:
//父類
public class Student(){
//學習方法
public void study(){
System.out.println("我通過聽老師講課學習");
}
}

//子類
public class UStudent extends Student(){
public void study(){
System.out.println("我通過自習去學習");
}
}

④ java中什麼叫子類

java中子類的定義為在有繼承關系的類中extends前面的類則是子類。

閱讀全文

與java中父類子類相關的資料

熱點內容
grx編譯器編譯失敗 瀏覽:691
linux使用的資料庫伺服器地址 瀏覽:689
我的世界電腦版如何伺服器加光影 瀏覽:654
簡便演算法45乘239 瀏覽:435
踏花行APP哪裡下載好 瀏覽:604
物理伺服器釋放是什麼意思 瀏覽:166
魔獸世界密語命令 瀏覽:174
如何打開密碼壓縮包 瀏覽:670
如何開啟root伺服器 瀏覽:891
漢諾塔演算法java 瀏覽:469
成都程序員上班視頻 瀏覽:479
pythonweb圖書 瀏覽:280
python同時遍歷兩個數組 瀏覽:760
我的世界生存模式挖掉命令方塊 瀏覽:108
pythoninstagram 瀏覽:713
androidn下載地址 瀏覽:488
pythonre小括弧 瀏覽:916
apktool反編譯dex閃退 瀏覽:503
怎麼和女生聊天用啥app 瀏覽:208
如何創造一個好玩的伺服器 瀏覽:6