A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

哈哈拜托了!

33 个回复

倒序浏览
重载是看函数的标示符是否一样:
回复 使用道具 举报
函数名相同,返回值类型相同,参数列表不一样。
三点符合了就是重载。
回复 使用道具 举报
去看书·······················
回复 使用道具 举报
判断两个函数重载,先看函数名是否一样,不让谈不上重载;函数名相同的话,再看函数的形式参数列表,包括数据类型和数据个数两个元素,有一个不同就是正确的重载。
回复 使用道具 举报
1017161726 发表于 2015-5-2 12:31
函数名相同,返回值类型相同,参数列表不一样。
三点符合了就是重载。

和返回值类型没有关系
回复 使用道具 举报 1 0
方法名一样,参数不一样
回复 使用道具 举报
1017161726 发表于 2015-5-2 12:31
函数名相同,返回值类型相同,参数列表不一样。
三点符合了就是重载。

不看返回值吧?
回复 使用道具 举报
返回值不同就编译不通过了
回复 使用道具 举报
函数的重载:在同一个类中,允许存在一个以上的同名函数(函数名一样),只要他们的参数个数或者参数类型不同即可(参数列表:参数个数和参数类型)
重载的特点:
与返回值无关,只看参数列表
重载的好处:
方便与阅读,优化了程序设计


什么时候用重载?
当定义的功能相同,但参与运算的未知内容不同。
那么,这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数
参数是有顺序的

多写一些函数重载的例子就明白了,例如:99乘法表中空参数的函数调用一样
就知道这么多,不足的地方请大神补充哈!
回复 使用道具 举报
黄冬 发表于 2015-5-2 12:39
和返回值类型没有关系

有关系的。返回值类型必须要相同,否则编译不通过。因为不允许这样的两个函数在同一个类中出现。
回复 使用道具 举报
xfliyy 发表于 2015-5-2 12:49
不看返回值吧?

老师讲过,返回值类型要相同。如果重载的两个函数返回值类型不一样,编译会报错的。这样的两个函数不允许同时出现。你理解的时候最好强记住这一点。
还有,参数列表要有顺序。否则也是重载。
回复 使用道具 举报 0 1
cyr 中级黑马 2015-5-2 15:12:01
13#
1017161726 发表于 2015-5-2 12:31
函数名相同,返回值类型相同,参数列表不一样。
三点符合了就是重载。

在同一个类中,名称相同,参数列表不同即为重载,与返回值类型,访问权限等无关的。
回复 使用道具 举报
cyr 发表于 2015-5-2 15:12
在同一个类中,名称相同,参数列表不同即为重载,与返回值类型,访问权限等无关的。 ...

你说的判断重载是对的。
我只是强调一下,返回值类型不可以不一样,否则会报错。
回复 使用道具 举报
cyr 中级黑马 2015-5-2 20:24:45
15#
本帖最后由 cyr 于 2015-5-2 20:26 编辑
1017161726 发表于 2015-5-2 17:21
你说的判断重载是对的。
我只是强调一下,返回值类型不可以不一样,否则会报错。 ...

那我下面的代码算重载吧,返回值类型不一样的哟(ps编译运行都通过了)。你给解释解释:
  1. public class Test {

  2.         public static void main(String[] args) {

  3.                 Test test = new Test();
  4.                 int i = test.show(2);
  5.                 String string = test.show("hahaha");
  6.                 System.out.println("show(int)-->" + i);
  7.                 System.out.println("show(String)-->" + string);
  8.         }

  9.         public String show(String str) {
  10.                 return str;
  11.         }

  12.         public int show(int i) {
  13.                 return i;
  14.         }

  15. }
复制代码
回复 使用道具 举报
cyr 发表于 2015-5-2 20:24
那我下面的代码算重载吧,返回值类型不一样的哟(ps编译运行都通过了)。你给解释解释:
...

不好意思,也许我没表达清楚。
你这样当然是可以的。
因为这两个函数本来参数列表就不一样,已经是重载了。
如果他俩的参数列表一样,都只有一个String,那是不允许的。
回复 使用道具 举报
本帖最后由 18561271203 于 2015-5-2 21:26 编辑

函数的重载:函数名相同,参数列表不同,与返回值类型无关。
要区别函数的重写(子父类中):函数名相同,返回值类型相同,参数列表相同,函数体不同。
回复 使用道具 举报
函数的重载决定因素在参数列表,包括参数的类型,数量,顺序.三个因素有一个不相同就可以重载.JVM并不能通过返回值类型和权限修饰符来判断.但是函数名必须要一样,否则相当于申明一个新的方法.
回复 使用道具 举报
1017161726 发表于 2015-5-2 20:57
不好意思,也许我没表达清楚。
你这样当然是可以的。
因为这两个函数本来参数列表就不一样,已经是重载了 ...

所以说来说去就是和返回值类型没有关系,只要函数名一样,参数列表不一样就是重载了。
回复 使用道具 举报
函数重载,函数名相同,参数个数或类型不同就是重载了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马