public class ClassA implements ClassC {
private static final long serialVersionUID = 1111111111111111111L;
public String varA;
}
public class ClassB extends ClassA implements ClassC {
private static final long serialVersionUID = 4604935970051141456L;
public String varB;
}
在我的代碼,我有這樣的聲明: ClassB classB;
和方法
myMethod的()
返回一個ClassA
目的。
如果我寫:
classB = (ClassB) myMethod();
我認爲我將有:
classB.varA = <a value from myMethod()>
classB.varB = null
,但事實並非如此:我收到ClassCastException異常。
爲什麼?那麼如何快速分配myMethod()
到ClassB
?
顯示所有相關代碼。我不確定我瞭解你想要做什麼。 –
一個強制轉換不會改變一個對象的類,它只是驗證該對象是那個類(或該類的某個子類)。如果你的myMethod返回了一個ClassB對象,但是把它輸入爲ClassA,那麼這個轉換就可以工作。 –
我不明白爲什麼B類實現C類,如果A類實現C類,B類擴展A類,那麼B類也不隱式實現C類接口? – Lucas