- 547 名前:デフォルトの名無しさん [2007/04/18(水) 22:27:58 ]
- class A{
} class B extends A{ } class CastTest{ 〜略〜 A a1 = new A();←OK B b1 = new B();←OK A a2 = new B();←OK B b2 = new A();←コンパイルエラー(互換性の無い型) A a3 = (A)new B();←OK B a3 = (B)new A();←コンパイル可、実行時ClassCastException 〜略〜 } B b2の時にコンパイルエラーになるのは分かるんですが、、 B b3の時にコンパイルが通ってしまう理由が分かりません。 どなたかエロい人この2つの違いを教えていただけないでしょうか?
|

|