php中文网

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

php中文网

重载还是封装?

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

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

虽然它们都有相同的名称,但它们参数的类型不同。因此,它们算作重载方法。

编译报错的原因

立即学习“Java免费学习笔记(深入)”;

如果再定义以下方法:

public int add(int a, int b)
public int add(Integer a, Integer b)

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

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

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

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

以上就是Java 中的重载与封装:为什么基本类型和封装类型不能算作重载?的详细内容,更多请关注php中文网其它相关文章!