<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    工作小驛

    Ninja!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      103 Posts :: 0 Stories :: 36 Comments :: 0 Trackbacks
    1.JAVA里沒有多繼承,一個類只能有一個父類。而繼承的表現就是多態。一個父類可以有多個子類,而在子類里可以重寫父類的方法(例如方法print()),這樣每個子類里重寫的代碼不一樣,自然表現形式就不一樣。這樣用父類的變量去引用不同的子類,在調用這個相同的方法print()的時候得到的結果和表現形式就不一樣了,這就是多態,相同的消息(也就是調用相同的方法)會有不同的結果。舉例說明:

    //父類
    public class Father
    {
      //父類有一個打孩子方法
      public void hitChild()
      {   
          System.out.println("臭崽子,你站著,不打你我不是你爹!");  }
      }
    }
    //子類1
    public class Son1 extends Father
    {
      //重寫父類打孩子方法
      public void hitChild()
      {
          System.out.println("為什么打我?我做錯什么了!");
      }
    }
    //子類2
    public class Son2 extends Father
    {
      //重寫父類打孩子方法
      public void hitChild()
      {
          System.out.println("我知道錯了,別打了!");
      }
    }
    //子類3
    public class Son3 extends Father
    {
      //重寫父類打孩子方法
      public void hitChild()
      {
          System.out.println("我跑,你打不著!");
      }
    }
    //測試類
    public class Test
    {
      public static void main(String args[])
      {
          Father father;
          father=new Father();      father.hitChild();
          father = new Son1();
          father.hitChild();
          father = new Son2();
          father.hitChild();
          father = new Son3();
          father.hitChild();
      }
    }


    運行結果:
    C:\java>java Test
    臭崽子,你站著,不打你我不是你爹!
    為什么打我?我做錯什么了!
    我知道錯了,別打了!
    我跑,你打不著!

    都調用了相同的方法,出現了不同的結果!這就是多態的表現!

    2.JAVA中沒有多繼承,而用接口實現了多繼承!一個類或是可以同時實現多個接口!(就相當于C++里一個類同時繼承了多個類!)例如:

    public class Son implements Father1,Father2,Father3
    {

    }

    接口有利于代碼功能的擴展(增加新的功能)!而繼承則有利于代碼功能的修改(把舊的功能改成新的功能)!這里舊功能的修改和新功能的增加前提是不修改舊的功能,舊的功能仍然可以使用!舊類的代碼也不做修改!

    接著上面的繼承舉例:上面例子中的子類我們統稱為一代子類

    1.用繼承修改舊的功能。

    現在如果一代Son1的功能打孩子,也就是方法hitChild()里邊的功能實現有問題,我們要把具體實現修改掉,那么我們可以重新寫一個新的二代子類Son11繼承自一代子類Son1,并重寫其hitChild()方法。

    //二代子類
    public class Son11 extends Son1
    {
      //重寫父類打孩子方法
      public void hitChild()
      {
          System.out.println("我是二代子類對此方法的新實現");
      }
    }


    2.用接口實現增加新的功能。

    現在類Son1已經有了‘打孩子’功能(也就是方法),而我們有了新的需求,我們需要它還要有一個新的功能‘寵孩子’(新方法pet();)。而舊的代碼不能動!那么我們可以定義一個新的接口(PetInterFace),接口里定義這個方法pet()的聲明。再重新寫一個二代子類Son11,讓它先繼承類Son1,同時實現接口 PetInterFace!并實現接口里的 pet()方法!

    //新接口
    public interface PetInterFace
    {
      //新功能方法
      public void pet();
    }
    //二代子類
    public class Son11 extends Son1 implements PetInterFace
    {
      //實現接口方法
      public void pet()
      {
          System.out.println("父親很愛我!");
      }
    }


    這樣這個二代子類即有了老的方法,又有新的功能!
    posted on 2007-08-12 22:14 王君 閱讀(261) 評論(0)  編輯  收藏 所屬分類: J2SE
    主站蜘蛛池模板: 亚洲中文字幕一区精品自拍| 久久久久久亚洲Av无码精品专口 | 午夜dj免费在线观看| 亚洲精品国产啊女成拍色拍| 99ee6热久久免费精品6| 久久无码av亚洲精品色午夜| 免费电视剧在线观看| 一本色道久久88—综合亚洲精品 | 国产成人yy免费视频| 91亚洲精品第一综合不卡播放| 免费A级毛片无码专区| 亚洲免费福利视频| 24小时日本在线www免费的| 亚洲日韩中文字幕无码一区| 国产成人无码区免费A∨视频网站| 国产精品成人亚洲| 久久亚洲高清综合| 污污网站免费观看| 久久精品国产亚洲av麻豆蜜芽 | 男女猛烈xx00免费视频试看| 亚洲国产成人影院播放| 三上悠亚电影全集免费| 亚洲AV人无码激艳猛片| 毛片免费全部播放一级| 特级无码毛片免费视频| 久久久久亚洲AV成人无码| AA免费观看的1000部电影| 精品久久久久久亚洲中文字幕| 亚洲中文字幕久久精品无码APP | 最新欧洲大片免费在线| 国产亚洲福利一区二区免费看 | 亚洲香蕉久久一区二区| 国产一区在线观看免费| 免费精品99久久国产综合精品| 亚洲国产成人99精品激情在线| 亚洲国产高清精品线久久| 久久精品免费观看国产| 精品国产成人亚洲午夜福利| 国产亚洲成人在线播放va| 在线永久免费的视频草莓| 无套内谢孕妇毛片免费看看|