黑马程序员技术交流社区

标题: 以下两个方法算是重载吗 [打印本页]

作者: Senmonfy    时间: 2016-3-14 21:46
标题: 以下两个方法算是重载吗
public static void sum(int a , int b){
  }
  public static void sum(int b , int a){
  }

作者: 翔骋丨灬公爵    时间: 2016-3-14 22:06
参数个数不同
参数类型不同
参数的顺序不同(算重载,但是在开发中不用)

作者: hainan080697    时间: 2016-3-14 22:18
参数列表一样  不算重载
作者: Senmonfy    时间: 2016-3-15 23:22
hainan080697 发表于 2016-3-14 22:18
参数列表一样  不算重载

是()里面的参数值不能一样?
作者: Senmonfy    时间: 2016-3-15 23:24
翔骋丨灬公爵 发表于 2016-3-14 22:06
参数个数不同
参数类型不同
参数的顺序不同(算重载,但是在开发中不用)

嗯,明白了,多谢
作者: Senmonfy    时间: 2016-3-15 23:25
翔骋丨灬公爵 发表于 2016-3-14 22:06
参数个数不同
参数类型不同
参数的顺序不同(算重载,但是在开发中不用)

嗯,明白了,多谢
作者: Senmonfy    时间: 2016-3-15 23:27
看看这个题,很有典型
作者: Senmonfy    时间: 2016-3-15 23:31
看看这个题,很有典型
作者: funnyjade    时间: 2016-3-15 23:40
重载只要方法名相同,参数列表不同就可以,跟返回值类型无关。这题参数列表,两个都是int类型,更换a、b还是一样的。所以不能算是重载
作者: EthanPT    时间: 2016-3-15 23:46
学习了学习了
作者: ameanboy    时间: 2016-3-16 12:39
参数类型列表是虚拟机识别方法的标识
作者: lidandan    时间: 2016-3-16 12:56
方发明相同,参数列表不同,所以不是重载
作者: wl756071448    时间: 2016-3-16 13:02
2楼是正解
作者: Newsir    时间: 2016-3-16 14:57
在使用重载时只能通过相同的方法名、不同的参数形式实现。不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);
不能通过访问权限、返回类型、抛出的异常进行重载;
方法的异常类型和数目不会对重载造成影响 ;
象你这种问题一般都是用来问子父类之间是否存在方法的重写关系,可以用重写的思想去考虑这个问题,但是并不是重写关系:不使用多态调用该方法为子类重写的方法,使用多态(即父类引用指向子类对象)调用方法为父类方法
作者: 翔骋丨灬公爵    时间: 2016-3-16 23:34
lidandan 发表于 2016-3-16 12:56
方发明相同,参数列表不同,所以不是重载

你还是回去问问你的讲师,
在同一个类中
方法名相同,参数列表不同   这都不算重载 那什么是重载, 你这种回复简直就是给人误导,还不如别说
(与返回类型无关)
作者: 翔骋丨灬公爵    时间: 2016-3-16 23:36
本帖最后由 翔骋丨灬公爵 于 2016-3-18 21:58 编辑
funnyjade 发表于 2016-3-15 23:40
重载只要方法名相同,参数列表不同就可以,跟返回值类型无关。这题参数列表,两个都是int类型,更换a、b还 ...

你忘了 参数列表不同里面 还有三个不同,
分别是参数个数不同,
参数类型不同,
参数的顺序不同,


作者: ZTK12345    时间: 2016-3-17 18:10
涨姿势,原来参数顺序不同也是重载啊
作者: Banana_uSuOO    时间: 2016-3-17 18:42
翔骋丨灬公爵 发表于 昨天 23:34
引用:   lidandan 发表于 2016-3-16 12:56   
方发明相同,参数列表不同,所以不是重载  
你还是回去问问你的讲师,
在同一个类中
方法名相同,参数列表不同...

我也郁闷了,两个都是int类型,更换a,b不还是一样吗?
作者: 我♥永恒    时间: 2016-3-17 19:58
这样也算参数列表不同啊,学习了!
作者: 徐选伟Shirwee    时间: 2016-3-17 21:05
当然不算啦。。
作者: monZhang    时间: 2016-3-17 21:17
明显不是重载,参数列表不同指的是函数的形参的个数、参数的类型至少有一个是不同的

public static void sum(int a , int b){
  }
  public static void sum(String a , int b){
  }
这样就算重载了 ,楼主那样写编译都过不了吧
作者: zxydeh    时间: 2016-3-17 22:09
算,参数类型不同
作者: HelloBoy    时间: 2016-3-17 22:31
以下两个方法算是重载的!!
作者: 赵国政    时间: 2016-3-18 00:23
不算重载 !
作者: huanlong579    时间: 2016-3-18 00:30
不算重载~~~
作者: 里程碑    时间: 2016-3-18 08:49
Senmonfy 发表于 2016-3-14 21:46
public static void sum(int a , int b){
  }
  public static void sum(int b , int a){

肯定是重载,看参数列表,毕向东的视频里好像就有这个例子
作者: 翔骋丨灬公爵    时间: 2016-3-18 21:59
Banana_uSuOO 发表于 2016-3-17 18:42
我也郁闷了,两个都是int类型,更换a,b不还是一样吗?

是一样的
作者: xanx14710    时间: 2016-3-18 22:39
不算是方法重载
作者: Senmonfy    时间: 2016-3-19 20:30
xanx14710 发表于 2016-3-18 22:39
不算是方法重载

为什么,给个解释好不好
作者: Senmonfy    时间: 2016-3-19 20:31
翔骋丨灬公爵 发表于 2016-3-18 21:59
是一样的

答案是不一样的,你再看看吧

作者: 萌萌的_O30IH    时间: 2016-3-19 23:27
这个不算吧
作者: 19960812    时间: 2016-3-19 23:55
方法名一样 , 参数列表相同 , 不是重载
作者: as9600    时间: 2016-3-20 00:25
不算都是int型
作者: Man_hui    时间: 2016-3-20 00:35
你的这个应该不算是重载
作者: leiothrixs    时间: 2016-3-20 10:05
算重载,但是在开发中不用~
作者: Open    时间: 2016-3-20 15:00
合理的重载方法




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