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