Javaクラスキャストに関する幅広い質問があります。私が4つのクラス(よく3つのクラスと1つのインターフェイス)を作成したとしましょう。インターフェイスAはあなたが言うことができると思うスーパーインターフェイスです。クラスBはA(インターフェイスAのサブクラスであることを意味します)を実装し、CはBとDこれらの製作のオブジェクトが実際にコンパイルされている場合はJavaクラス/オブジェクトキャスティング適用可能な場合
A myA;
B myB = new B();
C myC = new C();
D myD = new D();
//I want to cast now!
myB = (B) myD;
myC = (D) myA;
myD = (C) myB;
:C.
だが、私は以下のように、次の初期化したドライバクラスを持っているとしましょう拡張?私は、キャスティングの間のルールを理解するのに苦労しています。私はある種のダウンキャスティングとそれが許されない方法を理解していますが、クラスキャスティングはまだ私を混乱させるようなコンセプトです。
私はまだ少し混乱していますが、実際には、階層の下位のクラスは親クラス(またはスーパークラス)に関するすべてを知っていますが、親クラスは子クラスについて何も知らないためキャストできません。 myD =(C)myBの場合;それはまだCにキャストされていません。私はちょうどこれのすべてで混乱しています、それだけです。ありがとう! – Linuxn00b
Woho、そして何人かのスマートな男が否定的な答えを何の説明もしていないと投票しました:) – Optional
Yah私はなぜそれがよい答えだと思ったのかわかりません。 – Linuxn00b