から




専門/H18/08

正解 Edit

5

選択肢の検証 Edit

  1. メソッド呼び出しva.mb()は,コンパイル時にはエラーにならない可能性がある。
    • エラーになる。
  2. メソッド呼び出しvb.ma()は,実行時に必ずエラーになる。
    • 継承しているのでエラーにならない。
  3. 変数vaにはクラスBのインスタンスは代入できない。
    • キャストで代入できる。
  4. 代入文 vb=va; は,コンパイル時の型検査ではエラーにならない。
    • キャストがないのでエラーになる
  5. 代入文 vb=(B)va; は,実行時にエラーになる可能性がある。
    • 代入互換性は実行時に検査され(動的型検査)、不適切であれば実行時の例外が発生する

ソース(「クラスの継承」)

  • 代入互換性を満たさない変換、例えばスーパークラス型をサブクラス型に型変換することはキャストによって記述でき、コンパイルは成功する。
  • しかし、代入互換性は実行時に検査され(動的型検査)、不適切であれば実行時の例外が発生する。ある型が代入互換性を満たすかどうかの検査は、instanceof 演算子を用いて実現できる。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 下位頁新規  一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-02-22 Mon 23:18:59 JST (3016d)