|
||||||||||||||||||||||||||||||
| 前のページ 1 2 | ||||||||||||||||||||||||||||||
| 解答 | ||||||||||||||||||||||||||||||
|
1ページ目の問題の解答を掲載します。解答には、問題の正解やその理由だけでなく、用語や重要事項などが詳しく解説されています。 |
||||||||||||||||||||||||||||||
| 第1問の解答: B、C、E | ||||||||||||||||||||||||||||||
|
メソッドのオーバーロードに関する問題です。オーバーロードとは、同じメソッド名で、引数のデータ型、数、並び順が異なる場合に成り立ちます。 選択肢AとDの記述は、引数のデータ型、数、並び順が一致しています。同じクラス内に同じ名前で、これらが一致するメソッドを複数定義できません。 オーバーロードされたメソッド同士は互いに無関係なメソッドとなります。アクセス修飾子や戻り値のデータ型、発生する例外についての制限はありません。各選択肢に関する説明は以下のとおりです。 |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
したがって、B、C、Eが正解です。 |
||||||||||||||||||||||||||||||
| 第2問の解答: B、D | ||||||||||||||||||||||||||||||
|
メソッドのオーバーライドに関する問題です。オーバーライドとは、スーパークラス(もしくはインタフェース)で定義されているメソッドを、サブクラス(もしくはインタフェースを実装したクラス)で再定義することをいいます。 スーパークラスのメソッドの定義(メソッド名、戻り値の型、引数の型や数)を変更することはできないが、サブクラスに特化した機能を持たせる必要がある場合などに使用します。 |
||||||||||||||||||||||||||||||
| オーバーライド | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
オーバーライドを行う際のルールは以下のとおりです。 |
||||||||||||||||||||||||||||||
| メソッド名、戻り値の型、引数の型や数、並び順をスーパークラスのメソッドと一致させる | ||||||||||||||||||||||||||||||
|
メソッド名、戻り値の型、引数の型や数、並び順がスーパークラスのメソッドと一致していなければなりません。1つでも異なると、オーバーライドと見なされません。メソッド名が異なる場合は、別のメソッドと見なされます。引数の型や数、並び順が異なる場合は、オーバーロードされたメソッドと見なされます。メソッド名、引数の型や数、並び順が同じで、戻り値の型のみが異なる場合は、メソッドの呼び出しが区別できないため、コンパイルエラーとなります。 |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
final修飾子の付いたメソッドはオーバーライド不可 |
||||||||||||||||||||||||||||||
|
スーパークラスのメソッドにfinal修飾子が付与されている場合は、そのメソッドをオーバーライドできません。コンパイルエラーが発生します。 |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
スーパークラスのメソッドよりも厳しいアクセスレベルは付与できない |
||||||||||||||||||||||||||||||
|
スーパークラスのメソッドに指定されるアクセスレベルより、制限の厳しいアクセスレベルを付与することはできません。たとえば、スーパークラスのメソッドにpublicが指定されている場合、オーバーライドするメソッドにprivateを指定することはできません。コンパイルエラーが発生します。 |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
スーパークラスのメソッドに指定されるthrows節以外の例外は指定不可 |
||||||||||||||||||||||||||||||
|
スーパークラスのメソッドに指定されるthrows節以外の例外を指定することはできません。ただし、スーパークラスのメソッドに指定された例外を、より限定する例外、つまりスーパークラスのメソッドに指定された例外クラスのサブクラスの例外を指定することは可能です。 |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
各選択肢に関する説明は以下のとおりです。 |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
したがって、BとDが正解です。 |
||||||||||||||||||||||||||||||
| 第3問の解答: B | ||||||||||||||||||||||||||||||
|
メソッドのオーバーライドに関する問題です。サブクラスのChildクラスでprintMessageメソッドを定義しています。メソッド名、戻り値の型、引数の情報が一致しているため、オーバーライドとして見なされます。 15行目でChildクラスのインスタンスを生成し、getMessageメソッドを呼び出していますが、参照変数のデータ型がスーパークラスであるParent型です。ただし、この場合でも、オーバーライドしたメソッドが実行されます。したがって、Bが正解です。 |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
前のページ 1 2 |
||||||||||||||||||||||||||||||
|
書籍紹介 徹底攻略Java 2プログラマ問題集 Platform 1.4対応
SUN Java認定コースを担当する著者が臨場感ある問題と解説を書き下ろし!出題傾向をカバーする精錬問題を豊富に用意しているので、短期間で効率よく学習できます。実際の出題傾向を問題に盛り込むほか、詳しい解説をそれぞれ用意。単純な正否だけでなく、選択肢ごとになぜこれが正しいか、誤っているかその根拠をていねいに紹介しています。最終章の総仕上げ問題で試験の模擬対策も万全です!発売日:2004.12.17発売 販売価格:3,360円(税込) |
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||


