みなさん、こんにちは。
以下が機能しない理由を教えてくれるJavaハッカーがいるかどうか疑問に思っています。
public class Parent {
public Parent copy() {
Parent aCopy = new Parent();
...
return aCopy;
}
}
public class ChildN extends Parent {
...
}
public class Driver {
public static void main(String[] args) {
ChildN orig = new ChildN();
...
ChildN copy = orig.getClass().cast(orig.copy());
}
}
コードはコンパイルできますが、実行時に ClassCastException をスローすることにします D=
編集:おっと、本当に迅速な返信。みんなありがとう!したがって、この方法を使用してダウンキャストできないようです... Javaでダウンキャストを行う他の方法はありますか? ChildN
各クラスを上書きすることも考えましcopy()
たが、余分な定型コードを追加することに熱心ではありませんでした。