昨晚翻了翻《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 湘江夜游神 閱讀(362) 評論(0)  編輯  收藏 所屬分類: JAVA生活

          Locations of visitors to this page

          主站蜘蛛池模板: 廉江市| 祁阳县| 齐河县| 南京市| 峨山| 佛学| 获嘉县| 镇远县| 赤峰市| 黄山市| 招远市| 贵阳市| 开鲁县| 庆云县| 汕尾市| 四川省| 清新县| 巢湖市| 新闻| 日喀则市| 宁武县| 富宁县| 乐都县| 潼关县| 绩溪县| 楚雄市| 灵川县| 新巴尔虎左旗| 尼玛县| 武定县| 吴桥县| 辉县市| 宁城县| 平江县| 满城县| 宁德市| 濮阳县| 枣阳市| 惠东县| 彭州市| 元阳县|