当代码试图将树向下转换为红杉时,将抛出java ClassCastException
在下面的代码中,当我们将树向下投射到Redwood时,在第7行并没有错误,但为什么在将树向下投射到Redwood时在第10行出现运行时错误呢
public class Redwood extends Tree {
public static void main(String[] args) {
new Redwood().go();
}
void go() {
go2(new Tree(), new Redwood());
go2((Redwood) new Tree(), new Redwood());// no error here
}
void go2(Tree t1, Redwood r1) {
Redwood r2 = (Redwood)t1;// runtime error here
Tree t2 = (Tree)r1;
}
}
class Tree { }
共 (0) 个答案