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

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

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

    隨筆-208  評論-469  文章-30  trackbacks-0

    1.JAVA里沒有多繼承,一個類之能有一個父類。而繼承的表現(xiàn)就是多態(tài)。一個父類可以有多個子類,而在子類里可以重寫父類的方法(例如方法print()),這樣每個子類里重寫的代碼不一樣,自然表現(xiàn)形式就不一樣。這樣用父類的變量去引用不同的子類,在調(diào)用這個相同的方法print()的時候得到的結果和表現(xiàn)形式就不一樣了,這就是多態(tài),相同的消息(也就是調(diào)用相同的方法)會有不同的結果。舉例說明:

    //父類
    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();
    ?? }
    }


    都調(diào)用了相同的方法,出現(xiàn)了不同的結果!這就是多態(tài)的表現(xiàn)!

    ?

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

    public class Son implements Father1,Father2,Father3{


    }


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


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


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

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


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

    ?

    2.用接口實現(xiàn)增加新的功能。

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

    //新接口
    public interface PetInterFace{
    ?? //新功能方法
    ?? public void pet();
    }

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

    ?

    這樣這個二代子類即有了老的方法,又有新的功能!

    posted on 2007-04-13 22:54 EricWong 閱讀(308) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 日韩成人免费视频播放| 国产成人A在线观看视频免费| 国产精品jizz在线观看免费| 国产亚洲精品VA片在线播放| AA免费观看的1000部电影| 亚洲国产成人综合| 无码国产精品一区二区免费虚拟VR| 色噜噜综合亚洲av中文无码| 中文字幕成人免费视频| 亚洲狠狠狠一区二区三区| 人成午夜免费视频在线观看| 亚洲天堂2017无码中文| 日韩免费无砖专区2020狼| MM1313亚洲国产精品| 老色鬼久久亚洲AV综合| 久久久久久一品道精品免费看| 亚洲综合国产精品| 最新欧洲大片免费在线| 色噜噜的亚洲男人的天堂| 亚洲精品老司机在线观看| 国产在线观a免费观看| 亚洲性天天干天天摸| 国产亚洲欧美在线观看| 亚洲国产精品成人AV无码久久综合影院| 一级一黄在线观看视频免费| 亚洲成AV人片在线观看ww| 久久九九兔免费精品6| 亚洲欧美熟妇综合久久久久 | 色吊丝性永久免费看码 | 亚洲精品人成网线在线播放va| 国产精品免费_区二区三区观看| jizz在线免费播放| 亚洲网址在线观看| 国产成人免费福利网站| 中文字幕无码一区二区免费| 亚洲国产乱码最新视频| 国产亚洲?V无码?V男人的天堂 | 日本视频在线观看永久免费| 亚洲AV综合色区无码二区爱AV| 免费又黄又硬又爽大片| **俄罗斯毛片免费|