SAシステムアーキテクト試験 午前Ⅱ

令和元年度秋期 システムアーキテクト 午前Ⅱ 問4

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

Java サーブレットを用いたWebアプリケーションソフトウェアの開発では,例えば,doGet や doPost などのメソッドを,シグネチャ(メソッド名,引数の型と個数)は変えずに,目的とする機能を実現するための処理に置き換える。このメソッドの置き換えを何と呼ぶか。

選択肢

  1. ア
    オーバーライド
  2. イ
    オーバーロード
  3. ウ
    カプセル化
  4. エ
    継承
解き方のヒントを見る

メソッド用語は関係の対象で見分ける

オブジェクト指向のメソッドに関する用語は、名前が似ていても、何と何の関係を説明しているかが異なります。用語ごとに対象となる範囲と関係を自分の言葉で言い直し、問われている状況と照らし合わせて検討しましょう。

この問題で問われていること

この問題で着目したいのは、各用語がどの範囲で、何と何の関係を述べている概念なのかという一点です。範囲や関係を曖昧にしたまま名前だけで覚えると混同しやすいため、定義の主語と対象を意識して整理してください。

視点

メソッドに関する概念用語は、カタカナの響きや語感が似ているため、名前だけで覚えると取り違えやすい分野です。区別するときは、その用語が『何を主語にした説明か』『何と何を比べたり結び付けたりしているか』『どの範囲の中での話か』を一文で言い表せるかを試すと、理解があいまいな箇所が見えてきます。語感や印象ではなく、定義が指している関係そのものを手がかりに判断する姿勢が大切です。

確認ポイント

  • 各用語について、何を主語にし、何と何の関係を述べた概念なのかを一文で説明できるか確認する
  • その関係がどの範囲の中で成り立つ話なのかを、定義に立ち返って確かめる
  • 問われている状況の説明が、その範囲と関係に本当に合っているかを語感に頼らず照合する
正解と解説を見る

正解

ア

解説

設問は、サーブレットが提供するメソッドのシグネチャを変えず、目的に応じた処理へ置き換える操作の名称を問うている。これは継承先で既存メソッドを再定義する概念に該当する。

理由

doGetやdoPostなど、あらかじめ用意されたメソッドと同じシグネチャを保ちながら、サーブレット側で具体的な処理を実装する。このように継承したメソッドを置き換える仕組みがオーバーライドです。

比較

オーバーロードは引数の型や個数を変えた同名メソッドの複数定義であり、カプセル化は内部実装の隠蔽、継承は既存クラスの性質を引き継ぐ仕組みです。設問の中心は、継承先で同じシグネチャの処理を再定義する点にある。

選択肢ア(正解)

これは正解だよ。Javaでは、継承したクラスが親クラスの同名・同じ引数型のメソッドを、シグネチャを保ったまま独自処理に置き換えることをオーバーライドという。doGetやdoPostの実装を目的に合わせて書き換える説明に一致する。

選択肢イ

これは不正解だよ。オーバーロードは、同じクラスなどでメソッド名を共通にしつつ、引数の型や個数を変えて複数定義することを指す。設問はシグネチャを変えない置換なので、この説明とは異なる。

選択肢ウ

これは不正解だよ。カプセル化は、データや内部処理を外部から直接扱わせず、必要な操作を通じて利用させる設計上の考え方である。既存メソッドを同じシグネチャで別処理に置き換える操作そのものを表す用語ではない。

選択肢エ

これは不正解だよ。継承は、既存クラスの属性やメソッドを別のクラスが引き継いで利用できるようにする仕組みである。設問は、その継承関係を前提に、引き継いだメソッドの処理を再定義する操作を尋ねているため、継承だけでは説明が足りない。

学習のポイント

オーバーライドとオーバーロードの違いを、シグネチャと継承関係で整理する。

出典:独立行政法人 情報処理推進機構(IPA)令和元年度秋期 システムアーキテクト試験 午前Ⅱ 問4(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針