我有两个类:
class Base {
public String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
class Derived extends Base {
public String getValue() {
return name + " foo";
}
}
并创建了一个对象:
Base foo = new Base();
foo.setName("John");
Derived bar = (Derived) foo;
这个简单的例子给出了 ClassCastException
异常:
java.lang.ClassCastException: Base cannot be cast to Derived
是否有可能以某种方式使用额外的只读方法扩展现有对象?
最佳答案
使用 Base foo = new Base();
你说你有一只猫,但突然之间你试图将它转换为波斯猫,这本来可以成功的,如果所有的猫都是波斯猫。这是不正确的,这就是您得到 ClassCastException
的原因。
你必须做的:
Base foo = new Derived();
关于java - 将基对象转换为派生类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30573431/