令和5年度 春期 午前Ⅱ 問5
アルゴリズムとプログラミング
Java サーブレットを用いた Web アプリケーションソフトウェアの開発では,例えば,doGet や doPost などのメソッドを,シグネチャ(メソッド名,引数の型・個数・順序)は変えずに,目的とする機能を実現するための処理に置き換える。このメソッドの置き換えを何と呼ぶか。
- アオーバーライド
- イオーバーロード
- ウカプセル化
- エ継承
答えと解説を見る
✓ これが正解アオーバーライド
解説
シグネチャを変えずに処理を置き換えるのはオーバーライドです。
見分ける軸は、メソッドのシグネチャを変えるかどうかと、何を置き換えるかです。オーバーライドは、スーパークラスで定義されたメソッドを、サブクラスで同じシグネチャのまま定義し直し、処理の中身を置き換えることです。Java サーブレットでは、HttpServlet を継承したクラスで doGet や doPost を同じ形のまま書き直し、目的の処理を実装します。設問のシグネチャは変えずに処理に置き換える、という説明がこれに当たります。名前が同じでも引数の型や数を変えて別のメソッドとして並べるのはオーバーロードです。上書きがオーバーライド、多重定義がオーバーロード、と訳語で覚えると取り違えません。
ほかの選択肢はなぜ違うのか
- イオーバーロード:オーバーロードは、同じ名前のメソッドを引数の型や個数、順序を変えて複数定義することです。シグネチャを変えて別のメソッドを並べる仕組みなので、シグネチャを変えずに処理を置き換えるという設問の説明とは逆です。
- ウカプセル化:カプセル化は、データとそれを操作するメソッドを一つにまとめ、内部の詳細を外から隠すことです。メソッドの中身を置き換える行為を指す語ではありません。
- エ継承:継承は、スーパークラスの属性やメソッドをサブクラスが引き継ぐ仕組みです。置き換えはこの継承を前提に行われますが、引き継ぐこと自体を指す語であり、メソッドの処理を置き換える行為の名前ではありません。
この問題の用語
- アプリケーションソフトウェア利用者の目的に直接こたえるソフトウェアで、表計算や会計、業務用の専用ソフトなどがあたります。機器そのものを動かす基本ソフトウェアの上で動きます。
出典:令和5年度 春期 システムアーキテクト試験 午前Ⅱ 問5
同じ用語が出る問題
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)