例 1
親クラスは子クラスに回転を強制します
Father f = new Father(); Son s = (Father)f;//出错 ClassCastException
分析:
親のインスタンスを作成しますクラスであり、強制したいのですが、親クラスのオブジェクトをサブクラスに変換することはできません。平たく言えば、本当の父親は決して息子のふりをすることはできません。
オンライン学習ビデオ チュートリアルの共有: java オンライン チュートリアル
例 2
サブクラスを強制的に回転させる「偽の」親クラス
Father f = new Son(); Son s = (Son)f;//可以
分析:
親クラス オブジェクトはサブクラス インスタンスを参照します。
Father クラスは Son クラス (サブクラス) の固有のプロパティを持たないため、当面 f で Son クラス固有のプロパティを操作することはできません。
次に、親クラス オブジェクト f から強制的に変換されたオブジェクトを参照するサブクラス オブジェクト s を作成します (実際には、強制的に Son に変換されたふりをした Son です)。サブクラスの固有の属性を操作するために渡すことができます。
平たく言えば、息子は父親のふりをしているということですが、結局のところ息子はまだ息子であり、本質は変わっていません。息子に戻らざるをえない場合もあります。
例 3
サブクラスを親クラスに強制変換
Son s = new Son(); Father f = (Father)s;//可以
分析:
サブクラスは親クラスに変換されますが、サブクラスの一意の属性はf 操作を使用すると、f はその非固有プロパティ (親クラスから継承されたプロパティ) を操作できます。
平たく言えば、息子と父親の共通点は、どちらも人間であるということです。息子は人間であり、父親からそれを受け継いでいます。二人とも基本的な人間の行動を持っていますが、息子は父親と同じ世代になることはできません (サブクラス型は親クラス型に変換されます)。
おすすめの関連記事とチュートリアル: java クイック スタート
以上がJavaの親クラスとサブクラス間の変換の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。