在学习中遇到一个问题,想知道 public int add(int a, int b) 和 public void add(Integer a, Integer b) 这两个方法之间的关系。
根据重载的条件:方法名相同、参数类型不同或个数不同、返回类型可能不同,这两个方法看似是重载。
然而,由于 Integer 是 int 的封装类型,并且在调用方法时,Java 会优先查找基本数据类型,当 public int add(int a, int b) 和 public int add(Integer a, Integer b) 同时存在时,会认为它们是 相同的方法,即使返回类型不同。
因此,当返回值类型为 int 时,编译器会报错,提示这两个方法无法区分。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
【小浪云服务商 - 服务器12元起 - 挂机宝5元起】
THE END
暂无评论内容