物件投射

與原語一樣,可以顯式和隱式地轉換物件。

當源型別擴充套件或實現目標型別(強制轉換為超類或介面)時,會發生隱式轉換。

當源型別由目標型別擴充套件或實現(轉換為子型別)時,必須進行顯式轉換。當正在轉換的物件不是目標型別(或目標的子型別)時,這會產生執行時異常(ClassCastException)。

Float floatVar = new Float(42.0f);
Number n = floatVar;                //Implicit (Float implements Number)
Float floatVar2 = (Float) n;        //Explicit
Double doubleVar = (Double) n;      //Throws exception (the object is not Double)