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;
。
我非常抱歉。我已经在上面的代码中纠正了它。
答案 0 :(得分:1)
即使在第一种情况下 - ; A级{
}
public class B extends A {
public static void main(String[] args) {
A m = new A();
// B n = m;
B n = (B)m;
}
}
这是工作。
答案 1 :(得分:0)
什么? 你不能把A加到B,不管你说的是什么 如果A延伸B而不是B可以作为A和B的分支,但A不能是B的实例。