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;
。私は非常に申し訳ない。上記のコードで修正しました。