5 回答

TA貢獻1863條經驗 獲得超2個贊
在 Java 中有一個 和 的概念。上嵌意味著轉換為超類型,而下嵌意味著轉換為子類型。upcasting
downcasting
每當有關系時,你都可以毫無傷害地進行升級。但需要注意的是低調。Is-A
例如,您有 和 因為 兩者 都是 類,因此 People 數組可以存儲這兩個?,F在,當你做編譯器不知道它實際上是員工,因為有相等的概率,可以經理作為經理類也擴展了人。因此,您需要顯式提供一個強制轉換,告訴編譯器您知道自己在做什么,并且無需給出任何編譯錯誤。但是,如果在運行時出現任何問題,則將拋出a。People array
Employee
Manager
extends
People
Employee ref2 = people[1];
ClassCastException

TA貢獻1830條經驗 獲得超9個贊
它不是在沒有強制轉換的情況下編譯的,因為編譯器不知道它是 .people[1]
Employee
來自 Java 教程。鑄造對象:
我們可以告訴編譯器,我們承諾通過顯式轉換來分配給它。
Employee
people[1]
此強制轉換將插入一個分配了 的運行時檢查,以便編譯器可以安全地假定 該檢查是 。如果不是 在運行時,將引發異常。
people[1]
Employee
people[1]
Employee
people[1]
Employee
查看更多 Java 中的強制轉換變量

TA貢獻1828條經驗 獲得超3個贊
變量的類型為 。 ( - 實例也可以是擴展的子項 )。people
Person
Person[] people = Person[5];
type[] people = new instance
type
這里編譯器看到,你需要說在編譯器它也可以(導致擴展)通過轉換。Employee ref2 = people[1];
people
Person
Employee
Employee
Person
你可以閱讀更多,關于這個主題,在這里: https://www.baeldung.com/java-type-casting

TA貢獻1854條經驗 獲得超8個贊
變量的類型為 。 ( - 實例也可以是擴展的子項 )。people
Person
Person[] people = Person[5];
type[] people = new instance
type
這里編譯器看到,你需要說在編譯器它也可以(導致擴展)通過轉換。Employee ref2 = people[1];
people
Person
Employee
Employee
Person
你可以閱讀更多,關于這個主題,在這里: https://www.baeldung.com/java-type-casting
添加回答
舉報