黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java繼承多態經典案例分享

Java繼承多態經典案例分享

更新時間:2019-09-17 11:38:09 來源:動力節點 瀏覽3454次


今天動力節點java培訓機構小編為大家分享Java繼承多態經典案例,希望通過此文能夠幫助到大家,下面就隨小編一起看看Java繼承多態經典案例。


public class A {

public String show(D obj) {

return ("A and D");

}

public String show(A obj) {

return ("A and A");

}

}



public class B extends A {

public String show(B obj) {

return ("B and B");

}

public String show(A obj) {

return ("B and A");

}

}



public class C extends B{


}



public class D extends B{


}



public class Demo2 {

public static void main(String[] args) {

A a1 = new A();

A a2 = new B();

B b = new B();

C c = new C();

D d = new D();


System.out.println(a1.show(b)); // A and A  

System.out.println(a1.show(c)); // A and A  

System.out.println(a1.show(d)); // A and D  

System.out.println(a2.show(b)); // B and A  

System.out.println(a2.show(c)); // B and A 

System.out.println(a2.show(d)); // A and D  

System.out.println(b.show(b));  // B and B  

System.out.println(b.show(c));  // B and B  

System.out.println(b.show(d));  // A and D  

}

}


  分析:


  多態的兩種形式:1、父類做形參,子類做實參。2、父類的引用指向子類的實例對象。


  首先分析一個各個類所具有的方法。


  A:public String show(D obj); public String show(A obj);


  B:public String show(D obj); public String show(A obj); public String show(B obj); public String show(A obj);-(被重寫)


  C:public String show(D obj); public String show(A obj); public String show(B obj); public String show(A obj);-(被重寫)


  D:public String show(D obj); public String show(A obj); public String show(B obj); public String show(A obj);-(被重寫)


  執行程序。


  A a1 = new A();A a2 = new B();,a1 是多態形式1??慈缦麓a。System.out.println(a1.show(b));A中的show方法只有D A 做形參,沒有B做形參的,然而A是B的父類,所以,這里實現的是多態形式1。 System.out.println(a1.show(c));同上一個,A是C的間接父類。System.out.println(a1.show(d));由于有D做形參的方法,所以直接使用。


  System.out.println(a2.show(b));這個比較復雜, 明確一點很重要:a2是A類的引用,只能引用A中已有的方法,沒有的方法不能引用,有人會說為什么不是 “B and B”,輸出“B and B”的方法是子類B的方法,顯然不會調用。具體過程而是查看A中的方法,發現沒有以B為參數的方法,但有以A為參數的方法,父類為形參,這里又是第一種形式的多態,于是就調用這個方法,但是這個方法在B中重寫了,所以就會調用子類的方法輸出“B and A”。System.out.println(a2.show(c));同理,C的間接父類是A。System.out.println(a2.show(d)); A中有以D為參數的方法,直接調用。


  System.out.println(b.show(b));查看B中有沒有以B為參數的方法,直接調用B的以B為參數的方法。System.out.println(b.show(c)); 查看B中有沒有以C為參數的方法,但是沒有,于是查找父類中有沒有以B為參數的方法。也沒有,于是查找B中有沒有以父類B為參數的方法,索性,這里有所以就調用。假設,這里沒有的話,就會繼續查找有沒有以間接父類A為參數的方法。System.out.println(b.show(d)); 查找B中有沒有以D為參數的方法,但是沒有,于是看看從父類繼承來的方法中有沒有以D為參數的方法,顯然有,所以調用并輸出。


  總結


  明確多態的兩種形式,謹記父類引用只能調用父類的方法,不能調用子類中的方法。如果調用到了子類的方法,那么一定是子類中重寫的方法。


  super關鍵字用于調用子類中從父類繼承得到的成員變量和方法,this關鍵字用于調用當前對象的屬性和方法。


以上就是動力節點java培訓機構小編為大家分享的“Java繼承多態經典案例”的內容,希望對大家有幫助,更多java最新資訊請繼續關注動力節點java培訓機構官網,每天會有精彩內容分享與你。


相關免費視頻教程推薦


java繼承視頻教程下載——繼承案例:http://m.ilovecolors.com.cn/xiazai/2606.html


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 琪琪色在线视频 | 久操视频网站 | 亚洲产国偷v产偷v自拍色戒 | 午夜久久久久久亚洲国产精品 | 久久天堂网| 黄视频网站免费 | 最近2019年免费中文字幕高清 | 日日噜噜夜夜狠狠久久丁香婷婷 | 国产一区二区在线 |播放 | 免费观看成人羞羞视频网站观看 | 日本一区二区三区四区视频 | 亚洲午夜影视 | 欧美乱妇高清无乱码 | 又www又黄又爽啪啪网站 | 日本一区二区三区视频在线 | 国产一级毛片午夜 | 亚洲国产成人久久三区 | 日本午夜精品一本在线观看 | 狠狠色狠狠色综合日日五 | 成年视频在线 | 国产日韩亚洲不卡高清在线观看 | 日韩一中文字幕 | 波多野结衣亚洲一区二区三区 | 欧美福利小视频 | 一区在线观看 | 99精品欧美一区二区三区美图 | 欧美视频亚洲 | 日本三级带日本三级带黄首页 | 亚洲成人视屏 | 免费黄色一级片 | 色综合色综合色综合 | 欧美深夜福利 | 天天摸天天躁天天添天天爽 | 91桃色国产线观看免费 | 成人免费播放视频777777 | 亚色在线视频 | 爽爽影院色黄网站在线观看 | 久久久久久久性高清毛片 | 涩视频成人永久免费观看网站 | 男女爽爽无遮拦午夜视频 | 成人在线观看不卡 |