質問: (student)obj; //ダウンキャスト System.out.print(obj1.displayDetails()); } } このコードをコンパイル、および実行すると、どのような結果になりますか A Parson B student C コンパイルに失敗 D 実行時に例外がスローされる ! この問いでは、DかBが正解と思われるのですか、ダウンキャスト時、明示的にキャストしているのでコンパイルエラーにはならないが、スーパ型の機能はサブクラス型は持ってないので、実行時に例外がスローされる。 もしくは、ダウンキャストしても、スーパークラス型の中にサブクラスのインスタンスを作ってたわけであって、機能するのはサブクラス型だから問題なく出力できる。よってB どちらの理解のほうが正しいのでしょうか。
回答: 続けて似たような質問を連続でされているようですが、質問する前に、なぜ、ご自分で試さないのでしょうか? Javaをコンパイル・実行する環境がないのでしょうか?もし、Javaについて学びたければ、Javaをコンパイル・実行する環境を用意しないことには難しいです。まずは、Javaをコンパイル・実行できるようになることから始めて下さい。それができなければ、いくら机上でJavaを学んでも頭に入ってこず、**無意味です**。もし、何かしらの理由でパソコンにJDKを入れられないとか、スマホから書き込んでいると言う場合でも、オンラインコンパイラを使えます。下記のオンラインコンパイラを使ってご自分で試してみてください。 * paiza.io * ideone.com まずは、自分で確認し、その答えがなぜそうなるのかわからなければ、再度質問して下さい。