在子類中應該如何調用父類的構造方法
- java語言
- 關注:5.32K次
在Java中,子類可以繼承父類的非私有成員變量和成員方法(不是以private關鍵字修飾的)作為自己的成員變量和成員方法。但是,不能繼承父類的構造方法,那麼在子類中應該如何調用父類的構造方法?今天本站小編為大家整理的在子類中應該如何調用父類的構造方法,僅供學習參考,歡迎大家閲讀瀏覽!
答:子類可以調用由父類聲明的`構造方法。但是必須在子類的構造方法中使用super關鍵字來調用。其具體的語法格式如下:
super([參數列表]);
例如,在動物類Animal中添加一個默認的構造方法和一個帶參數的構造方法,具體代碼如下:
1public class Animal{
2 String skin = "不清楚"; // 成員變量
3 public Animal () { // 默認構造方法
4 }
5 public Animal(String strSkin) { // 帶參數的購造方法
6 skin = strSkin;
7 }
8}
這時,如果想在子類Dog中使用父類的帶參數的構造方法,則需要在子類Dog的構造方法中通過以下代碼進行調用。
1public class Dog extends Animal{
2 public Dog (){
3 super("白色"); //使用父類的帶參數的構造方法
4 }
5 public static void main(String[] args) {
6 Dog dog=new Dog();
7 tln("小狗的毛是"+);
8 }
9}
運行上面的代碼將顯示如圖1所示的運行結果。
專家點評
在Java中,子類不能繼承父類的構造方法,但是如果子類沒有編寫調用父類構造方法的代碼,那麼Java將自動在子類的構造方法中添加super();語句,用於調用父類的無參構造方法。所以説即使您沒有手動指定調用父類的構造方法,父類的無參構造方法也將會被執行。因此,在Java中,如果想調用父類中無參的構造方法,則可以使用super();語句調用,也可以不使用super();語句調用。但是如果要調用帶參數的構造方法,則需要使用super()方法。
- 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-hk/jsj/java/2jmxd.html