以下のようなコードがあります。
class Sample {
public static void main(String[] args){
methodA("Hello");
}
}
このコードが実行できるようなmethodAは、
static void methodA(String message){
System.out.println(message);
}
らしいのですが。
一体、どういうことなのか、問題も解答もさっぱりでして…
コードが実行できるメソッドの定義?について、解説いただけないでしょうか。
よろしくお願い致します。
この質問は、メソッドのオーバーロードについての質問です。
「オーバーロード」とは、同じメソッド名でも、その引数(パラメータ)が違うと別のメソッドとして扱われる、ということです。
回答群のうち、(ア) と (エ) は、呼び出している側とパラメータの数や型が違うので、呼び出せません。
引数の数と型が同じ (イ) と (ウ) の選択になるのですが、(ウ) の方は、メソッドの戻り値が String になっていますから、メソッドに return 文がないとコンパイルエラーになります。
というわけで、(イ) が正解になります。