2010-12-16 67 views
0

提出同樣問題的另一種方法是,給定2個A和B類,說「對象A可以投入到B中」和「對象A是B的後代」是同義詞嗎?Java - 你可以將一個對象轉換成它沒有擴展的類嗎?

感謝,

JDelage

編輯:澄清的問題,以更清楚地表明A和B都是類。

+1

試試看? – 2010-12-16 10:09:13

+0

「直系後代」是什麼意思?如果你的意思是類A明確地擴展了B,那麼就沒有必要。 A可以擴展C和C可以擴展B,並且仍然可以將A賦予B. – 2010-12-16 10:12:07

+0

@Sergey - 是的,這就是我的意思是直接後裔。 – JDelage 2010-12-16 10:14:13

回答

2

Java - 你可以將一個對象轉換成它沒有擴展的類嗎?」 - 不,你不能。

」基本上,它是同義的說:「對象A可以投入B」和「對象A是B的直接後裔」?「 - 是的。另外的情況下,當A是一類實現接口B.的

+0

太好了,謝謝。 – JDelage 2010-12-16 10:18:30

2

不,你不能。它拋出一個ClassCastException。

1

是的,你可以,如果B接口和A是實現B的

+0

公平 - 我的意思是作爲一個單獨的班級,但我的問題沒有指定它。魔鬼,細節和所有......感謝你的教訓。 – JDelage 2010-12-16 10:16:02

0

假設您有:

interface I {} 
class A implements I {} 
class B extends A {} 
class C extends B {} 

所有的以下是有效的:

(I)C; 
(A)C; 
(B)C; 
相關問題