基本情報技術者試験の重要概念:継承/ポリモーフィズムとは?
継承(Inheritance)とポリモーフィズム(Polymorphism:多態性)は、オブジェクト指向(OOP)の中核を成す概念です。
ソフトウェアの拡張性・再利用性・保守性を高めるために不可欠な考え方であり、基本情報技術者試験でも頻出のテーマです。
継承(Inheritance)とは?
- 既存のクラス(親クラス、スーパークラス)をもとにして、新しいクラス(子クラス、サブクラス)を作る仕組み
- 親クラスのプロパティ(属性)やメソッド(操作)を子クラスが引き継ぐ
- 共通処理を親クラスにまとめることで、コードの重複を防ぎ再利用性が向上
例(Java風の擬似コード)
class Animal {
void speak() {
print("...");
}
}
class Dog extends Animal {
void speak() {
print("ワン!");
}
}
ポリモーフィズム(Polymorphism)とは?
- 同じメソッド名でも、呼び出されるオブジェクトの型によって異なる処理が行われる仕組み
- 「多様な形式で同じ名前のメソッドが使える」=多態性
- 継承+オーバーライド(上書き)で実現される
ポリモーフィズムの動作例
Animal a1 = new Dog();
Animal a2 = new Cat();
a1.speak(); // ワン!
a2.speak(); // ニャー!
このように、同じ「speak()」でも実行される内容がオブジェクトに応じて異なるのがポリモーフィズムの特徴です。
ポリモーフィズムのメリット
- 処理の汎用化が可能になる(同じメソッド名で異なる動作)
- コードの拡張がしやすく、変更にも柔軟に対応できる
- 条件分岐の削減や、共通インターフェースの利用がしやすくなる
継承とポリモーフィズムの関係
- ポリモーフィズムは、継承を前提とする機能
- 親クラスで定義されたメソッドを子クラスでオーバーライド(上書き)することで実現される
基本情報技術者試験での出題ポイント
- クラス間の継承関係(is-aの関係)の理解
- メソッドのオーバーライドと動作結果の読み取り
- ポリモーフィズムにより「どのメソッドが呼ばれるか」をトレースできるか
手続き型との違い
- 手続き型では、処理は関数で一括管理される
- オブジェクト指向では、データ+処理をまとめたクラスを中心に設計される
- 特に継承・ポリモーフィズムは、手続き型にはない拡張性の要素
まとめ
- 継承: 親クラスの性質を子クラスが引き継ぐ仕組み
- ポリモーフィズム: 同じメソッド名でも、オブジェクトにより異なる動作をする
- 再利用性・拡張性に優れ、大規模開発において特に有効
- 試験では用語理解と動作のイメージが問われる
継承とポリモーフィズムは、オブジェクト指向の力を最大限に引き出す要素です。
基本情報技術者試験では、コードの流れと動作の違いを正確に読み取る力が求められます。