簡體   English   中英

有關強制轉換的Java編譯問題

[英]Java compilation question regarding casting

如果我有兩個彼此不相關的對象。 在以下情況下會發生什么:我們有:對象A,對象B

A a = new A();
B b = new B();
  1. a = b; \\會編譯嗎? 我會例外嗎?
  2. a =(A)b; \\會編譯嗎? 之后-我會例外嗎?

您可以簡單地編譯它們以獲取答案。

  1. ,不會編譯

  2. ,不會編譯

也可以看看

兩者都不會編譯,在第二種情況下,只有在編譯器可以檢查類型的情況下,因此,如果您首先通過Object,您將能夠在運行時進行強制轉換並獲取異常

如果兩個對象不相關,則您將無法將一個對象轉換為另一個對象。 1.不會編譯。 2.將編譯,但在運行時將引發異常。

如果一個對象是從另一個對象繼承的,則可以將一個對象轉換為另一個對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM