オブジェクト指向で属性と機能を使える仕組みは
基本情報技術者試験 平成30年度春期 午前 問46 / システム開発技術 › ソフトウェア方式設計・詳細設計
過去問にチャレンジ
オブジェクト指向において,あるクラスの属性や機能がサブクラスで利用できることを何というか。
- ア
オーバーライド
- イ
カプセル化
- ウ
継承
- エ
多相性
会話形式の解説
講師上位クラスの属性や機能を、下位クラスがどう扱うかに注目しましょう。
受験者下位クラスで使うなら、オーバーライドでしょうか。メソッドを再定義するという意味と迷います。
講師オーバーライドは、上位クラスのメソッドを下位クラスで再定義することです。この問題は再定義を尋ねていますか。
受験者いいえ。属性や機能を利用できることが条件です。
講師その条件に合うのは継承です。上位クラスの属性や機能を下位クラスが受け継いで利用できます。
受験者カプセル化は、クラス間で受け継ぐこととは違いますか。
講師はい。カプセル化は、オブジェクトの内部を外部から隠すことです。
受験者多相性は、同じ呼出しでも対象に応じて動作が変わることですね。ここでは動作の違いを聞かれていません。
講師その通りです。受け継いで利用するなら継承、メソッドを再定義するならオーバーライドと、何を行うかで見分けましょう。
まとめ
上位クラスの属性や機能を下位クラスが利用できる仕組みは、継承です。オーバーライドはメソッドの再定義、カプセル化は内部を外部から隠すことを指します。多相性は、同じ呼出しでも対象に応じて動作が変わることです。
解答・解説
正解はウです
この問題のテーマ
上位クラスの属性や機能をサブクラスが利用する仕組みの名称を問う問題です。
解き方の考え方
問題文の「あるクラスの属性や機能がサブクラスで利用できる」という部分に着目します。機能を再定義することや内部を隠すことではなく、上位クラスから受け継ぐ仕組みを選びます。
選択肢ごとの解説
- ×ア オーバーライドオーバーライドは、上位クラスのメソッドを下位クラスで再定義することです。問題文が尋ねている、属性や機能を利用できるようになる仕組みの名称には当たりません。
- ×イ カプセル化カプセル化は、オブジェクトの内部を外部から隠すことです。クラス間で属性や機能を受け継ぐことを指す用語ではありません。
- ○ウ 継承継承を使うと、上位クラスの属性や機能を下位クラスで利用できます。問題文の条件にそのまま合うため、ウが正解です。
- ×エ 多相性多相性は、同じ呼出しでも対象に応じて動作が変わることです。問われているのは動作の違いではなく、上位クラスのものを下位クラスで利用する仕組みです。
POINT
- クラス間で何を行うかを見て、用語を判別します。
- 上位クラスから下位クラスへ受け継ぐ仕組みは、継承です。
- メソッドの再定義を問われた場合は、オーバーライドを考えます。
