昨晚翻了翻《Core Java2》,發現一個需要注意的要點,就是子類在引用父類的構造方法時,能不能重載父類的構造器?
          廢話少說,直接上代碼測試:
          例:
                SuperClass
           1package com.inheritance;
           2
           3public class SuperClass {
           4    public SuperClass(String n,int a){
           5        name = n;
           6        salary =a;
           7    }

           8    private String name;
           9    private int salary;
          10    public String getName(){
          11        return name;
          12    }

          13    public int getSalary(){
          14        return salary;
          15    }

          16
          17}

          18

                 ChildClass
           1package com.inheritance;
           2
           3public class ChildClass extends SuperClass{
           4     public ChildClass(String n,int a,int b){
           5         super(n,a);
           6         bonus = b;
           7     }

           8     private int bonus ;
           9     public int getSum(){
          10         return bonus +super.getSalary();
          11     }

          12     public String getName(){
          13         return super.getName();
          14     }

          15}

          16

                 TestClass
           1package com.inheritance;
           2
           3public class SuperTest {
           4    public  static void main(String[] args){
           5       ChildClass c = new ChildClass("b",20,30);
           6       System.out.println(c.getSum());
           7       System.out.println(c.getName());
           8    }

           9}

          10

          運行測試類,結果打印子類對象c的name和薪水。
          注意:我們的子類ChildClass中的構造方法,它是調用了父類SuperClass的含有n,a參數的構造方法。因為子類ChildClass不能直接訪問父類SuperClass的私有值域,可以通過這個super方法對這部分值域初始化。這樣父類的值域就被初始化,如name和salary。這樣,我們可以看到TestCalss中的第七行輸出的c.getName實際上是得到父類SuperClass的name,因為在產生c對象的時候,"b"參數實際上是傳遞給了父類的私有域name,super隱式調用了SuperClass。這樣在TestClass中取c.getName()返回的是super.getName().返回的當然是父類的name。

               另外,構造方法不同于一般的方法。它不能由子類繼承。

          posted on 2007-12-26 14:05 湘江夜游神 閱讀(357) 評論(0)  編輯  收藏 所屬分類: JAVA生活

          Locations of visitors to this page

          主站蜘蛛池模板: 白银市| 屯留县| 广水市| 鹤峰县| 邵东县| 广平县| 荣成市| 新竹县| 大关县| 辉南县| 德庆县| 苗栗县| 鄂托克前旗| 鄂尔多斯市| 繁峙县| 尼木县| 武邑县| 永福县| 南乐县| 宁都县| 台州市| 彭泽县| 南京市| 宁安市| 乡宁县| 海口市| 抚州市| 台北县| 泾川县| 连平县| 辛集市| 黄石市| 高碑店市| 北海市| 体育| 新干县| 凭祥市| 太保市| 景德镇市| 麻江县| 宁国市|