更新時間:2019-09-16 16:46:27 來源:動力節(jié)點 瀏覽4087次
今天動力節(jié)點java培訓機構小編為大家介紹“詳解java多態(tài)向上轉型和向下轉型”,希望通過此文大家能夠掌握java多態(tài)向上轉型和向下轉型,下面就隨小編一起看看java多態(tài)向上轉型和向下轉型。
1、 方法的多態(tài)性:
重載overload(返回值類型,參數(shù)類型,數(shù)目不同,且定義在同一個類中)、重寫overide(子類與父類中,相同的方法名,不同的方法體);
2、 對象的多態(tài)性:父子類對象的轉換;
向上轉型:子類對象變?yōu)楦割悓ο螅割?父類對象 = 子類實例,自動轉換;
用法: Father f = new Son();
向下轉型:父類對象變成子類對象,子類 子類對象 = (子類) 父類實例,強制轉換;
Father f = new Son();
Son s = (Son)f; //必須要先有向上轉型,才能向下轉型
舉例:Father是父類,Son是子類
Father f1 = new Son(); // 這就叫 upcasting (向上轉型), 現(xiàn)在f1引用指向一個Son對象
Son s1 = (Son) f1; // 這就叫 downcasting (向下轉型),現(xiàn)在f1還是指向Son對象
舉例:Father是父類,Son是子類
Father f2 = new Father();
Son s2 = (Son) f2; // 編譯不出錯,運行時出錯(除非子類和父類擁有相同的屬性和方法),子類引用不能指向父類對象
注:
向上轉型,父類實例只能調用父類與子類共同的成員方法,成員變量只能調用父類的,子類獨有的實例變量與實例方法將不能調用,且變量值是父類的,方法的執(zhí)行方法體是子類的。
向下轉型,前提是有向上轉型,此時對象能夠調用子類的成員變量以及獨有的成員方法。
例如:Father f1 = new Son(); Son s1 = (Son) f1; 其實就相當于Son s1 = new Son();
以上就是動力節(jié)點java培訓機構小編為大家介紹的“詳解java多態(tài)向上轉型和向下轉型”的內容,希望對大家有幫助,更多java最新資訊請繼續(xù)關注動力節(jié)點java培訓機構官網,每天會有精彩內容分享與你。
相關免費視頻教程推薦——java初級入門教程下載
java多態(tài)中的向上轉型:http://www.dabaquan.cn/xiazai/2600.html
java多態(tài)中的向下轉型:http://www.dabaquan.cn/xiazai/2599.html