新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Java中使用接口實現多繼承和多態的方法

        Java中使用接口實現多繼承和多態的方法

        作者: 時間:2011-11-24 來源:網絡 收藏
          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中沒有多繼承,而用接口實現了多繼承!一個類或是可以同時實現多個接口?。ň拖喈斢贑++里一個類同時繼承了多個類?。├纾?/P>

          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("父親很愛我!");

          }

          }

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

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        c++相關文章:c++教程




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阳朔县| 黔西县| 普兰县| 镇雄县| 霍城县| 贵溪市| 茶陵县| 云南省| 建平县| 桐城市| 霍邱县| 贵溪市| 昌乐县| 定远县| 西乌珠穆沁旗| 镇江市| 盐城市| 涿鹿县| 河津市| 亚东县| 黄石市| 延寿县| 中超| 都兰县| 蓬莱市| 呼和浩特市| 阿克苏市| 扎赉特旗| 靖远县| 茌平县| 综艺| 樟树市| 阿克苏市| 垫江县| 堆龙德庆县| 龙江县| 商城县| 遂平县| 汝城县| 河源市| 满洲里市|