您好,登錄后才能下訂單哦!
小編這次要給大家分享的是JAVA中如何實現父類與子類轉換,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
JAVA語言中, 對象變量是多態的
那反過來可不可以呢
答案是取決于父類變量引用的是誰
如果父類變量引用的是子類對象的實例, 可以通過強轉被子類變量引用
如果父類變量引用的是父類對象的實例,則不能被為子類變量引用
上代碼舉例子(本篇一直用這兩個類舉例子,main測試不同):
一個Father類
package test; public class Father { int fatherA; Father(int a) { fatherA=a; } }
一個Son類
package test; public class Son extends Father { int sonB; Son(int a,int b) { super(a); sonB=b; } }
package test; public class MainTest { public static void main(String[] args) { Son son1=new Son(1, 2); Father father1=son1; //子類對象被父類變量引用 System.out.println(father1.fatherA); } }
結果: 賦值成功!
package test; public class MainTest { public static void main(String[] args) { Father father2=new Son(1, 2); //父類引用了子類對象的實例 Son son2=(Son)father2; System.out.println(son2.sonB); } }
結果:轉換成功!
這里注意即使引用的是子類實例轉換成子類也需要強轉, 否則會報錯
package test; public class MainTest { public static void main(String[] args) { Father father2=new Father(1); //父類引用了子類對象的實例 Son son2=(Son)father2; System.out.println(son2.sonB); } }
結果:失敗!
看完這篇關于JAVA中如何實現父類與子類轉換的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。