類以外是對於B類A.內部類延伸的C類這也是A.內部類鑄造的內子類到另一個內父類B類別
class A{
class C{
}
class B extends C{
}
}.
如何投物體C類從A類以外的類型B? 我試圖(AB)objectOfC,但這不起作用
行,所以我得到的錯誤是Java問我把「)」之後「(A」。當我這樣做,它說, 「表達的非法的開始
類以外是對於B類A.內部類延伸的C類這也是A.內部類鑄造的內子類到另一個內父類B類別
class A{
class C{
}
class B extends C{
}
}.
如何投物體C類從A類以外的類型B? 我試圖(AB)objectOfC,但這不起作用
行,所以我得到的錯誤是Java問我把「)」之後「(A」。當我這樣做,它說, 「表達的非法的開始
class A {
class C {}
class B extends C {}
B b() {
return new B();
}
}
public class So9961167 {
public static void main(String[] args) {
A a=new A();
A.C b=a.b();
if(b instanceof A.B) {
A.B b2=(A.B)b;
System.out.println("it worked!");
}
}
}
這裏有一個簡單的方法來記住鑄造是如何工作的:
一個孩子像他的父母 - 因爲繼承自父孩子
父母不喜歡他的孩子 - 因爲父母沒有繼承他的孩子。
因此,您無法將C語言轉換爲B語言 - 這在自然界和編程中是不可能的。
如果底層對象確實是'B',則可以。 – 2012-04-01 01:46:52
你可以,我已經在A班內部完成了並且工作,沒問題。但是,當我在課外時,我面臨着問題 – FranXh 2012-04-01 02:07:54
你爲什麼試圖沮喪? (即從基類轉換爲派生類) – 2012-04-01 01:26:15
我知道我想要投射的對象是B類型的,我想調用它的一個方法,它是特定於類B(子類)和不是C類(父類)。我不能在C中實現該方法,因爲那樣我就不得不在C的其他類中重寫它,而我不想那樣做。 – FranXh 2012-04-01 01:28:43
如果你知道你有一個'B'的實例,那麼你爲什麼不引用一個'B'而不是'C'? – 2012-04-01 01:29:40