为了账号安全,请及时绑定邮箱和手机立即绑定

public int add(int a, int b) 与public void add

public int add(int a, int b) 与public void add

慕容森 2019-03-21 09:15:25
今天在学习过程中发现的问题,在同一个类里面public int add(int a, int b) 与public void add(Integer a, Integer b)这两个方法是什么关系?算是重载吗?那为什么public int add(int a, int b) 和 public int add(Integer a, Integer b)编译器就报错了呢?
查看完整描述

2 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

重载的条件:方法名相同、参数类型不同、参数个数不相同。返回类型可以不相同
这个也算重载但是Integer是int的封装类型,在返回值不一样参数类型不一样时会认为不是同一个方法。
在调用方法时会先查找基本数据类型,没找到匹配的再继续查找封装类型,所以永远只会执行int类型参数的方法;
当返回值都为int类型时,int a=5;Integer b=5;a=b;所以编译时会认为是两个相同方法。

查看完整回答
反对 回复 2019-04-26
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

所以你的问题是:方法签名包含哪些信息.


查看完整回答
反对 回复 2019-04-26
  • 2 回答
  • 0 关注
  • 1184 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信