Java 方法重载:参数列表的合法性
以下代码展示了一个简单的 Java 类,其中包含一个名为 aMethod 的方法。
public class Test {
public float aMethod(float a, float b) {
return 0;
}
}
现在,需要将以下方法之一插入到空白行中,请问哪一个方法插入是不合法的?
A. public float aMethod(float a, float b, float c) { return 0; }
B. public float aMethod(float c, float d) { return 0; }
C. public int aMethod(int a, int b) { return 0; }
D. private float aMethod(int a, int b, int c) { return 0; }
正确答案是 B.
在 Java 中,方法的重载是通过方法名和参数列表来确定的。如果两个方法具有相同的方法名和参数列表,但是返回类型不同,则会被视为不同的方法。
在给定的代码中,原始方法的参数列表为 (float a, float b),如果插入 B 选项的方法,则参数列表为 (float c, float d),这两个方法的参数列表不同,所以 B 选项的方法插入是不合法的。
解释:
- A 是合法的,因为它添加了新的参数。
- C 是合法的,因为它更改了参数类型。
- D 是合法的,因为它更改了访问修饰符。
因此,只有选项 B 会导致编译错误,因为它尝试使用相同的参数列表重载方法。
原文地址: https://www.cveoy.top/t/topic/ccIX 著作权归作者所有。请勿转载和采集!