Java中子類的構造函數如何書寫


今天做了一道題,有關於繼承

我在想,怎樣讓子類中的構造函數給它繼承的父類的私有變量radius賦值,顯然是要通過調用構造函數,在c++里,可以這樣

Cylinder(double r,double h):Circle(r){

...(代碼塊)

}

但在Java中我試了一下,不行,百度一下之后,要調用super函數,這里有很多重難點。

1.首先我們得明白,繼承是不會繼承構造函數,只能調用(隱式或顯式)

2.如果父類沒有定義構造函數或者存在無參構造函數,所有子類的構造函數會默認調用父類的構造函數(即在前面省略了super();)

3.如果父類沒有無參的構造函數,或者是子類的構造函數想調用父類的含參構造函數(就像這題一樣,我們希望調用Circle的含參構造函數來初始化radius),就要第一行顯式使用super( [arg0][,arg1]….),顯式調用的參數類型,參數個數和你想調用的父類構造函數對應,注意一定要寫在第一行,否則編譯不通過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM