応用情報技術者試験 平成30年春 午前問7 解説付き過去問
問題
オブジェクト指向プログラミングにおいて、同一クラス内に、メソッド名が同一であって、引数の型、個数又は並び順が異なる複数のメソッドを定義することを何と呼ぶか。
正解
解説
この問題は、オブジェクト指向プログラミングにおけるメソッドの特定の特徴に関するものです。具体的には、同一のクラス内でメソッド名が同じであるものの、引数の型、個数、または並び順が異なるメソッドの定義の呼称について問われています。
- オーバーロードの定義
オーバーロード(メソッドのオーバーロード)とは、同一のクラス内で同じ名前のメソッドを複数定義することを指しますが、これらは引数の型、数、順序が異なる必要があります。これにより、同一のメソッド名で異なる操作を実行できるようになり、プログラマはメソッドをより柔軟に利用することができます。 - オーバーライドとの違い
オーバーロードと混同されがちな「オーバーライド」は、継承関係にあるクラス間で親クラスのメソッドを子クラスが再定義することです。オーバーライドではメソッド名、引数の型と数が親クラスのメソッドと完全に同じである必要がありますが、オーバーロードは同一クラス内で引数の違いにより同名のメソッドを複数持つことができます。 - カプセル化と汎化の説明
カプセル化はオブジェクトの詳細な実装を隠蔽し、外部から見えるインターフェースのみを提供する概念です。一方、汎化はオブジェクト間の階層関係を表し、より一般的なものから特定のものへと詳細化していくプロセスを指します。これらはメソッドの挙動や利用方法とは直接関連しないため、この問題の文脈では適切な用語ではありません。
したがって、同一クラス内にメソッド名が同一であって、引数の型、個数又は並び順が異なる複数のメソッドを定義する行為は「オーバーロード」と呼ばれます。これにより、メソッドの柔軟性が向上し、同一のメソッド名で様々な操作を効率的に実行できるようになります。