java轉型問題
java 轉型問題其實並不複雜,只要記住一句話:父類引用指向子類物件。
什麼叫父類引用指向子類物件,且聽我慢慢道來.
從2個名詞開始說起:向上轉型(upcasting) 、向下轉型(downcasting).
舉個例子:有2個類,Father是父類,Son類繼承自Father。
Father f1 = new Son(); // 這就叫 upcasting (向上轉型)
// 現在f1引用指向一個Son物件
Son s1 = (Son)f1; // 這就叫 downcasting (向下轉型)
// 現在f1還是指向Son物件
第2個例子:
Father f2 = new Father();
Son s2 = (Son)f2; // 出錯,子類引用不能指向父類物件
你或許會問,第1個例子中:Son s1 = (Son)f1;問什麼是正確的呢。
很簡單因為f1指向一個子類物件,Father f1 = new Son(); 子類s1引用當然可以指向子類物件了。
而f2 被傳給了一個Father物件,Father f2 = new Father();子類s1引用不能指向父類物件。
總結:
1.父類引用指向子類物件,而子類引用不能指向父類物件。
2.把子類物件直接賦給父類引用叫upcasting向上轉型,向上轉型不用強制轉換。
如:Father f1 = new Son();
3.把指向子類物件的父類引用賦給子類引用叫向下轉型(downcasting),要強制轉換。
如:f1 就是一個指向子類物件的父類引用。把f1賦給子類引用s1即 Son s1 = (Son)f1;
其中f1前面的(Son)必須加上,進行強制轉換。
相關文章
- Java泛型型別擦除問題Java泛型型別
- JAVA型別的問題Java型別
- cgo 型別轉換問題??Go型別
- 日期型別轉換問題型別
- java泛型應該注意的問題。Java泛型
- Java中文問題詳解(轉)Java
- 集合框架-通過Object轉型問題引入泛型框架Object泛型
- 每個CIO都應該問的IT轉型問題
- java多型-向上轉型和向下轉型Java多型
- Java的國際化問題 (轉)Java
- Java常見問題集錦(轉)Java
- Double型別轉換成BigDicimal問題型別
- 面試中Java泛型問題一文搞定面試Java泛型
- JAVA向上轉型和向下轉型(一)Java
- JAVA向上轉型和向下轉型(二)Java
- JAVA的一些基本問題(轉)Java
- java中的易混問題收集(轉)Java
- Java程式的髒資料問題 (轉)Java
- tp5.0 的模型型別轉換問題模型型別
- 15個問題告訴你如何使用Java泛型Java泛型
- java中文問題和資料庫型別有關Java資料庫型別
- java之物件轉型Java物件
- Struts2日期型別轉換問題???型別
- 轉享: java.lang.OutOfMemoryError: PermGen space 問題JavaError
- Java Thread應該注意的問題 (轉)Javathread
- java中有關日期的顯示問題 (轉)Java
- Java中文問題詳解(高手必讀) (轉)Java
- 一起討論一個BSTR型別轉換問題 (轉)型別
- java 問題Java
- java型別轉換與強制型別轉換(轉)Java型別
- Java中關於String型別的10個問題Java型別
- 遇到個小問題,Java泛型真的是雞肋嗎?Java泛型
- 陣列轉json後的資料型別問題陣列JSON資料型別
- 數字化轉型Top5 痛點問題剖析
- jivejdon中javax.mail.Session的型別轉換問題。JavaAISession型別
- 轉:IBM ThinkPad膝上型電腦問題集IBMThinkPad
- 關於Ibatis 轉換 oracle date型別的問題BATOracle型別
- java web start實現關鍵問題(二) (轉)JavaWeb