次の問題があります。次の 2 つのクラスがあるとします: Bicycle と MountainBike。MountainBike のヘッダーに次のように記載していますpublic class MountainBike extends Bicycle
。MountainBike クラスは、Bicycle には存在しない 2 つのフィールドを追加します。属性を 1 つずつ追加するため (データベースで作業しているため)、コンストラクターはありませんが、String 識別子と値を指定して属性を設定する関数があります。すべての属性が設定されていない可能性があり、null になる可能性があることはわかっていますが、これは問題ありません。
さて、質問は以下です。ある時点で、私はそれがどのタイプのバイクであるかを知っています。それはフィールドの 1 つです。私がやりたいことは次のとおりです。この Bicycle オブジェクトが実際に MountainBike であることがわかったらすぐに、それを MountainBike: にキャストしたいと思いますがMountainBike mb = (MountainBike) bicycle
、これにより実行時に java.lang.ClassCastException: Bicycle cannot be が発生します。マウンテンバイクにキャスト。
これは可能だと確信しています (自転車全体を引数として持つコンストラクターを使用しなくても)。これどうやってするの?
ありがとうございました!
ヘクター