黑马程序员技术交流社区

标题: Overload的问题 [打印本页]

作者: 陈建凡    时间: 2012-3-9 21:55
标题: Overload的问题
两个参数的个数的列表和类型完全一样,就是返回值不一样,这样为什么不行?
作者: 张一凡    时间: 2012-3-9 21:58
overload只看参数列表的个数或参数类型。
与参数的返回值类型无关。
作者: 贠(yun)靖    时间: 2012-3-10 00:29
函数重载overlaod
在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可(参数个数,类型,顺序 有一个不同都是重载)
注意:与返回类型和访问修饰符无关

作者: 王睿    时间: 2012-3-10 00:42
当然不行啦,如果可以的话?你调用下面的方法,怎么判断你调用的是哪个呢?

public void method(String a){
         s.o.p("a");
}
public String method(String a){
         return "a";
}
作者: 王杰    时间: 2012-3-10 00:54
关于重载,参数列表和函数名完全一样,但是返回值类型不一样。
这样不是重载。也没有意义。
这个时候我们必须探讨一下返回值不一样的情况。
只有当返回值是对象的时候,会出现这样的结果。
比如:
person method();
student method();
student extends person
这两个方法其实就是一个方法。他们的返回值都是person,如果你返回一个student也没有问题。student是继承person的。
作者: 袁野    时间: 2012-3-10 08:15
重载只看方法名 和参数就行 别 不用看
作者: 小白    时间: 2012-3-10 08:16
函数重载只看 参数列表 与返回值没有关系!
作者: lucky_xingxing    时间: 2012-3-10 08:32
重载是 一个类里里面有多个名称相同的方法,只是他们的方法签名不同(参数类型和参数个数各不相同),返回值必须是相同的才行。
public void  save(){}
public void save(int i){}
这样才是
如果public String save(String s){} 这个就不能和上面的算是方法的重载
作者: 刘豪杰    时间: 2012-3-10 10:46
函数重载只看函数名,函数类型,函数参数个数,和其他的没有关系,即:要么参数的类型不同,要么参数的个数不同,要么参数的类型和个数都不同;但是如果函数名不同的话,那就应该是另一个函数了,不属于重载了就




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2