Java 中的重载与封装:为什么基本类型和封装类型不能算作重载?

Java 中的重载与封装:为什么基本类型和封装类型不能算作重载?

重载还是封装

Java 中,方法重载需要满足条件:方法名相同,参数类型或个数不同,返回类型可以不同。针对以下代码中的两个方法:

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)
登录后复制

编译器会报错。这是因为:

  • java 会首先查找基本类型参数(int)的方法。
  • 如果找到匹配的,则不会再查找封装类型参数(integer)的方法。
  • 由于返回值类型相同,java编译器会认为这两个方法是相同的。

因此,为避免编译错误,重载方法应遵循以下规则:

  • 参数类型不同(基本类型与封装类型不算不同)。
  • 参数个数不同。
  • 返回类型可以不同。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容