java中子類繼承父類時是否繼承構造函數(shù)

          java繼承中對構造函數(shù)是不繼承的,只是調用(隱式或顯式)。

          以下是例子:

           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);
           
           }
          }

          編譯后執(zhí)行結果如下是什么呢?

          分析:SonClass s = new SonClass(66);執(zhí)行這句時,調用

           public SonClass(int c) {
                           System.out.println(1234);//系統(tǒng)會自動先調用父類的無參構造函數(shù)(super())
                  }

          在這個構造函數(shù)中,等價于

           public SonClass(int c) {

                          super();//必須是第1行,否則不能編譯
                           System.out.println(1234);
                  }

          所以結果是    100
                       
          1234

          3.如果子類構造函數(shù)是這樣寫的

          public SonClass(int c) {

                          super(22);//必須是第1行,否則不能編譯
                                   
          //顯式調用了super后,系統(tǒng)就不再調用無參的super()了;
                           System.out.println(1234);
                  }

          執(zhí)行結果是   22
                      1234

          總結1:構造函數(shù)不能繼承,只是調用而已。

          如果父類沒有無參構造函數(shù)

          創(chuàng)建子類時,不能編譯,除非在構造函數(shù)代碼體中第一行,必須是第一行顯式調用父類有參構造函數(shù)

          如下:

          SonClass (){

          super(777);//顯示調用父類有參構造函數(shù)

          System.out.println(66);

          }

          如果不顯示調用父類有參構造函數(shù),系統(tǒng)會默認調用父類無參構造函數(shù)super();

          但是父類中沒有無參構造函數(shù),那它不是不能調用了。所以編譯就無法通過了。

          總結2:創(chuàng)建有參構造函數(shù)后,系統(tǒng)就不再有默認無參構造函數(shù)。

          如果沒有任何構造函數(shù),系統(tǒng)會默認有一個無參構造函數(shù)。

          posted on 2008-07-02 11:13 chenkai 閱讀(6883) 評論(1)  編輯  收藏

          評論

          # re: java中子類繼承父類時是否繼承構造函數(shù)[未登錄] 2012-12-01 11:11

          不錯,不過就是好像在代碼中定義了兩個public接口!  回復  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          <2008年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統(tǒng)計

          常用鏈接

          留言簿(2)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 兴文县| 本溪市| 泽普县| 积石山| 夏邑县| 浮山县| 安泽县| 岳阳县| 仙游县| 广元市| 集贤县| 永州市| 清涧县| 民和| 三河市| 都昌县| 莲花县| 鄢陵县| 田阳县| 当阳市| 建德市| 海宁市| 景德镇市| 上高县| 京山县| 河间市| 岗巴县| 淄博市| 河北区| 襄城县| 巴彦淖尔市| 施秉县| 瓦房店市| 屯门区| 连州市| 昌平区| 苏尼特右旗| 内丘县| 土默特左旗| 县级市| 平谷区|