<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(){}
    }
    //子類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 Son1();
    father.hitChild();
    father = new Son2();
    father.hitChild();
    father = new Son3();
    father.hitChild();
    }
    }



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


    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-09-18 14:50 王君 閱讀(483) 評論(0)  編輯  收藏 所屬分類: J2SE
    主站蜘蛛池模板: 全黄性性激高免费视频| 日本免费污片中国特一级| 18禁网站免费无遮挡无码中文 | 亚洲性日韩精品国产一区二区| ASS亚洲熟妇毛茸茸PICS| 999在线视频精品免费播放观看 | 亚洲国产福利精品一区二区| 中文字幕免费视频| 亚洲国产精品综合久久久| 免费观看激色视频网站bd| 亚洲国产成a人v在线| 性做久久久久久久免费看| 亚洲一线产区二线产区区| 热久久精品免费视频| 亚洲大码熟女在线观看| 国产在线a不卡免费视频| 一级特黄色毛片免费看| 亚洲精品无码Av人在线观看国产| 国产色无码精品视频免费| 亚洲v高清理论电影| 日本片免费观看一区二区| 四虎亚洲精品高清在线观看| 在线免费一区二区| 男男gay做爽爽的视频免费| 亚洲性久久久影院| 3344免费播放观看视频| 亚洲人成7777| 亚洲欧洲精品成人久久曰影片| 99久久免费国产特黄| 亚洲精品自在线拍| 日本a级片免费看| 国产一区二区三区免费观在线| 亚洲AV日韩AV永久无码下载 | 午夜a级成人免费毛片| yellow视频免费看| 777亚洲精品乱码久久久久久| 成人免费无码视频在线网站| 色婷婷综合缴情综免费观看| 99亚洲精品高清一二区| 国产精品深夜福利免费观看| 97国免费在线视频|