猿问

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

今天在学习过程中发现的问题,在同一个类里面
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)编译器就报错了呢?

慕容森
浏览 1185回答 2
2回答

梦里花落0921

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

拉丁的传说

所以你的问题是:方法签名包含哪些信息.
随时随地看视频慕课网APP

相关分类

Java
我要回答