在方法重载中,是否可以为重载方法设置不同的返回类型?例如,
void foo(int x) ;
int foo(int x,int y);
double foo(String str);
Run Code Online (Sandbox Code Playgroud)
在一般的面向对象编程中,有可能吗?
Dun*_*hka 40
在一个类中,可以有几个共享相同名称但不同的方法
通过依赖于为方法提供的参数,在运行时,编译器确定要执行的方法版本.
重载方法可能有也可能没有不同的返回类型.但是单独的返回类型不足以让编译器确定在运行时执行哪个方法.
San*_*yan 18
方法重载意味着在同一个类中具有两个或多个具有相同名称且具有不同参数的方法.方法重载的好处是它允许您实现支持相同语义操作但由参数编号或类型不同的方法.
重点
Ama*_*udu 17
不可能有一个具有相同参数和不同return类型的方法.编译器throws error在下面的例子中(重复方法).
方法1:
public int calc(int a, int b, int c)
Run Code Online (Sandbox Code Playgroud)
方法2:
public String calc(int e, int f, int g)
Run Code Online (Sandbox Code Playgroud)
抛出错误:
method calc(int, int, int) is already defined
Run Code Online (Sandbox Code Playgroud)
答案是否定的。
Integer doSomething(){return null;}
String doSomething(){return null;}
main(){
doSomething()
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,编译器永远不会知道要调用哪个方法。
注意 - 在编译时检查方法重载
| 归档时间: |
|
| 查看次数: |
82385 次 |
| 最近记录: |