クラスとメソッド比較問題
Javaにおける「オーバーライド(上書き)」と「オーバーロード(多重定義)」の違いとして正しいものはどれですか?
A.オーバーライドは同じクラス内でメソッド名が同じで引数が異なるメソッドを定義することで、オーバーロードは親クラスのメソッドをサブクラスで再定義することである
✗ 説明が逆です。オーバーライドが親クラスのメソッドの再定義で、オーバーロードが引数の異なる同名メソッドの定義です。
B.オーバーライドもオーバーロードも、どちらも親クラスのメソッドをサブクラスで再定義することである
✗ オーバーロードは親クラスの再定義ではなく、同一クラス内で引数の異なる同名メソッドを複数定義することです。
C.オーバーライドは親クラスのメソッドをサブクラスで同じシグネチャで再定義することで、オーバーロードは同一クラス内でメソッド名が同じで引数が異なるメソッドを定義することである← 正解
✓ 正解です。オーバーライドは継承関係でのメソッド上書きであり、オーバーロードは同クラス内での引数違いの同名メソッド定義です。
D.オーバーライドもオーバーロードも、どちらも同じクラス内でメソッド名と引数が同じメソッドを複数定義することである
✗ オーバーライドとオーバーロードはまったく異なる概念です。また同名・同引数のメソッドを複数定義するとコンパイルエラーになります。