黑马程序员技术交流社区

标题: 关于重载的小疑问 [打印本页]

作者: 毕博    时间: 2012-4-21 01:39
标题: 关于重载的小疑问
两个参数的列表个数和类型一样返回值不一样 ,为什么不叫重载?
作者: 徐鑫    时间: 2012-4-21 02:02
方法名必须相同
方法参数类型、个数至少有一项不同
方法的返回类型可以不相同
方法的修饰符可以不相同
如果方法里有参数,比如public int show(int a,double b){
return (a+b);
}
public int show(double b,int a){
return (a+b);
}
参数顺序不同,也成立,不在乎返回值类型
作者: 李柯    时间: 2012-4-21 02:36
在Java 中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。
在这种情况下,该方法就被称为重载(overloaded )。

重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同
也可以不相同。不能以返回值作为重载函数的区分标准。
作者: 胡生蒙    时间: 2012-4-21 07:26
假如一个类Demo中有两个方法public int show(int a,int,b)  和public void show(int a,int b),当创建这个类的对象Demo d = new Demo,调用show方法 d.show(),这时会不知道调用哪个方法,因为类中有两个名字一样,返回值不一样的show方法
作者: 光sail    时间: 2012-4-21 09:02
方法重载 (Overload)。表示两个或多个方法名字相同,但方法参数不同。方法参数不同有两层含义:
1)参数个数不同。
2)参数类型不同。注意:方法的返回值对重载没有任何影响。


作者: 乞文超    时间: 2012-4-21 09:49
重载,在一个类定义中,可以编写几个同名的方法,但是只要它们的签名参数列表不同,Java就会将它们看做唯一的方法。简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。
如果它们的返回值类型不相同而参数相同,当你在调用这个函数时,对象无法确定到底要调用返回值是那个类型的函数,就会出错。希望可以帮到你
作者: 韩新凯    时间: 2012-4-21 10:50
返回值不是作为判断是否重载的依据
作者: 邵中国    时间: 2012-4-21 14:08
调用一个方法时可以不定义返回结果变量,
如果该类中有两个名称和参数列表完全相同
的方法,仅仅是返回类型不同,java就无法
确定倒底是想调用哪个方法
作者: 张超超    时间: 2012-4-21 15:19
两个参数的列表个数和类型一样,而参数的顺序不一样,返回值不一样同样可以成为重载。

你应该理解重载的定义,很多事情就是那么规定的,就像是java编程语言叫java而不叫hello呢,这个不能计较。
在Java 中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同(参数个数,参数类型,参数顺序)即可。在这种情况下,该方法就被称为重载(overloaded ),这个过程称为方法重载(method overloading )。方法重载是Java 实现多态性的一种方式。







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