これを明確にしようとしているので、型キャストを完全に理解しています。本当に遅いペースで約2ヶ月間私は自己学習Javaを行ってきたので、間違っているもので私を修正してください。型キャスト/ Javaのダウンキャスト
たとえば、私はSubObjectというクラスを作成しました。私は、直接的に明示的なスーパークラスを持たないすべてのクラスは、Objectクラスのサブクラスであると認識しています。
Object obj1 = new SubObject();
SubObject subObj1 = (SubObject) obj1;
System.out.println(subObj1); //prints out com.examplePackage.SubObject1234e1234;
だから私は成功したその派生クラス(サブオブジェクト)への基底クラス(オブジェクト)の参照をdowncastedています。しかし... ClassCastExceptionがエラーの
Object obj2 = new Object();
SubObject subObj2 = (SubObject) obj2;//this throws the ClassCastException error.
私の理解では、コードが、それはインスタンスではありませんそのサブクラスにオブジェクトをキャストしようとしたことを示すために、コンパイル時にそれをキャッチするためのRuntimeExceptionを継承したということです。 subObj2はSubObjectのインスタンスではなくObjectであるため、互換性がありません。
私は2つの質問があります: 1.私の理解に何らかの欠陥がありますか? 2.ダウンキャスティングは実際にどのような状況で使用されていますか?みんな助けてくれてありがとう。