class A {
}
public class B extends A {
public static void main(String[] args) {
A m = new A();
B n = (B)m;
}
}
无法遵守此代码。但是,在下面的代码中,这种向下转换有效。
class A {
}
public class B extends A implements Cloneable{
@Override
public B clone() throws CloneNotSupportedException {
return (B)super.clone();
}
public static void main(String[] args) {
B m = new B();
B n = m.clone();
}
}
那么,为什么这种沮丧有效呢?
=============修正============================
对不起我的错,应该是B n = **(B)**m;
,不是B n = m;
。我很抱歉。我已经在上面的代码中更正了它。