メソッドのオーバーロード
・同一クラスや継承関係のあるクラスの中で、
・引数の型・数・並びが異なる
・同じ名前の
メソッドを複数定義することを、メソッドのオーバーロードといいます。
戻り値のみが異なるメソッドを複数定義した場合はコンパイルエラーです。
問題:オーバーロードはどれか
A.
int x(){}
boolean x(){}
B.
void x(int i){}
void x(int j){}
C.
void x(int a){}
void x(boolean a){}
D.
void x(){}
void y(){}
解答:
C.
void x(int a){}
void x(boolean a){}
メソッド名引数の
解説:
A.
int x(){}
と
boolean x(){}
は、戻り値のみ異なります。
メソッド名と引数(なし)が同じメソッドは
複数定義できないためコンパイルエラーです。
B.
void x(int i){}
と
void x(int j){}
は、引数名が異なりますが、
メソッド名と引数(int型1つ)が同じメソッドです。
A.と同じ理由(同時に複数定義できない)ためコンパイルエラーです。
D.
void x(){}
と
void y(){}
は、メソッド名のみ異なります。
これは単に違うメソッドを2つ定義しただけです。
当然コンパイルエラーにはなりません。
・引数の型・数・並びが異なる
・同じ名前の
メソッドを複数定義することを、メソッドのオーバーロードといいます。
戻り値のみが異なるメソッドを複数定義した場合はコンパイルエラーです。
問題:オーバーロードはどれか
A.
int x(){}
boolean x(){}
B.
void x(int i){}
void x(int j){}
C.
void x(int a){}
void x(boolean a){}
D.
void x(){}
void y(){}
解答:
C.
void x(int a){}
void x(boolean a){}
メソッド名引数の
解説:
A.
int x(){}
と
boolean x(){}
は、戻り値のみ異なります。
メソッド名と引数(なし)が同じメソッドは
複数定義できないためコンパイルエラーです。
B.
void x(int i){}
と
void x(int j){}
は、引数名が異なりますが、
メソッド名と引数(int型1つ)が同じメソッドです。
A.と同じ理由(同時に複数定義できない)ためコンパイルエラーです。
D.
void x(){}
と
void y(){}
は、メソッド名のみ異なります。
これは単に違うメソッドを2つ定義しただけです。
当然コンパイルエラーにはなりません。