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

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

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

    302班

    java突擊隊
    posts - 151, comments - 74, trackbacks - 0, articles - 14
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    1.JAVA里沒有多繼承,一個類之能有一個父類。

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

    //父類
                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)了不同的結(jié)果!這就是多態(tài)的表現(xiàn)!

    2.JAVA中沒有多繼承,而用接口實現(xiàn)了多繼承!一個類或是可以同時實現(xiàn)多個接口!(就相當(dāng)于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("父親很愛我!");
                }
                }

    這樣這個二代子類即有了老的方法,又有新的功能!
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
    多態(tài)的解釋
    “polymorphism(多態(tài))”一詞來自希臘語,意為“多種形式”。多數(shù)Java程序員把多態(tài)看作對象的一種能力,使其能調(diào)用正確的方法版本。盡管如此,這種面向?qū)崿F(xiàn)的觀點導(dǎo)致了多態(tài)的神奇功能,勝于僅僅把多態(tài)看成純粹的概念。

      Java中的多態(tài)總是子類型的多態(tài)。幾乎是機械式產(chǎn)生了一些多態(tài)的行為,使我們不去考慮其中涉及的類型問題。本文研究了一種面向類型的對象觀點,分析了如何將對象能夠表現(xiàn)的行為和對象即將表現(xiàn)的行為分離開來。拋開Java中的多態(tài)都是來自繼承的概念,我們?nèi)匀豢梢愿械剑琂ava中的接口是一組沒有公共代碼的對象共享實現(xiàn)。

      多態(tài)的分類

      多態(tài)在面向?qū)ο笳Z言中是個很普遍的概念.雖然我們經(jīng)常把多態(tài)混為一談,但實際上有四種不同類型的多態(tài)。在開始正式的子類型多態(tài)的細節(jié)討論前,然我們先來看看普通面向?qū)ο笾械亩鄳B(tài)。

      Luca Cardelli和Peter Wegner("On Understanding Types, Data Abstraction, and Polymorphism"一文的作者, 文章參考資源鏈接)把多態(tài)分為兩大類----特定的和通用的----四小類:強制的,重載的,參數(shù)的和包含的。他們的結(jié)構(gòu)如下:



      在這樣一個體系中,多態(tài)表現(xiàn)出多種形式的能力。通用多態(tài)引用有相同結(jié)構(gòu)類型的大量對象,他們有著共同的特征。特定的多態(tài)涉及的是小部分沒有相同特征的對象。四種多態(tài)可做以下描述:

      強制的:一種隱式做類型轉(zhuǎn)換的方法。

      重載的:將一個標(biāo)志符用作多個意義。

      參數(shù)的:為不同類型的參數(shù)提供相同的操作。

      包含的:類包含關(guān)系的抽象操作。

      我將在講述子類型多態(tài)前簡單介紹一下這幾種多態(tài)。

    主站蜘蛛池模板: 日韩毛片免费一二三| 亚洲欧洲日韩国产一区二区三区| 美女视频黄.免费网址| 好爽好紧好大的免费视频国产| 最新亚洲卡一卡二卡三新区| 我们的2018在线观看免费高清 | 国产亚洲精品高清在线| 特级毛片aaaa级毛片免费| 亚洲成aⅴ人片久青草影院| 色妞www精品视频免费看| 亚洲国产精品成人| 国产日韩精品无码区免费专区国产| 亚洲色精品aⅴ一区区三区| 免费毛片在线看不用播放器| 亚洲视频日韩视频| 无码日韩精品一区二区免费| 亚洲精品无码高潮喷水A片软| 四虎永久在线免费观看| aa级女人大片喷水视频免费| 亚洲国产精品高清久久久| 16女性下面无遮挡免费| 亚洲AV无码专区亚洲AV桃| 亚洲视频一区二区| 亚洲a一级免费视频| 亚洲日韩国产精品乱-久| 亚洲成人影院在线观看| 热99RE久久精品这里都是精品免费 | 亚洲国产精品嫩草影院| 亚洲乱码国产一区网址| 久久精品国产免费| 亚洲大片免费观看| 免费看又爽又黄禁片视频1000 | 外国成人网在线观看免费视频| 亚洲国产精品一区二区久| 国产免费私拍一区二区三区| 免费无码H肉动漫在线观看麻豆| 亚洲无圣光一区二区| 深夜国产福利99亚洲视频| 免费视频精品一区二区三区 | 久久不见久久见免费视频7| 亚洲国产成人久久精品软件|