オブジェクト指向の基礎比較問題
Javaにおける「オーバーロード(overload)」と「オーバーライド(override)」の違いとして、最も適切なものはどれですか?
A.オーバーロードは親クラスのメソッドを子クラスで再定義し、オーバーライドは同じクラス内で引数の異なる同名メソッドを定義することである
✗ 説明が逆になっています。オーバーロードが同クラス内での定義で、オーバーライドが親クラスメソッドの再定義です。
B.オーバーロードもオーバーライドも、戻り値の型は必ず同じでなければならない
✗ オーバーロードは戻り値の型が異なってもよく、オーバーライドでも戻り値の共変は許可されています。
C.オーバーロードは同じクラス内で引数の異なる同名メソッドを定義し、オーバーライドは親クラスのメソッドを子クラスで再定義することである← 正解
✓ 正解です。オーバーロードは同一クラス内での同名・異引数のメソッド定義、オーバーライドはサブクラスでの親メソッドの再定義です。
D.オーバーライドは静的メソッドにのみ適用でき、オーバーロードはインスタンスメソッドにのみ適用できる
✗ オーバーライドは静的メソッドには適用されません。また、オーバーロードはインスタンスメソッドに限定されません。