Java 允许方法重载,即同一类的两个或多个方法可以共享相同的名称。
当方法参数声明不同时,就会发生方法重载。
方法重载是Java中实现多态性的一种方式。
要重载一个方法,需要声明它的不同版本。
编译器根据参数自动选择正确的方法。
一个重要的限制:重载方法的参数类型和/或数量必须不同,而不仅仅是返回类型不同。
重载方法的返回类型也可能不同,但参数对于选择正确的方法至关重要。
调用重载方法时,执行参数与参数匹配的版本。
ovlDemo() 方法使用不同的签名重载四次:
第一版本:无参数。
第二个版本:带有整数参数。
第三个版本:有两个整数参数。
第四个版本:有两个双参数。
ovlDemo() 的前两个版本返回 void,而后两个版本返回值。
方法重载不受返回类型影响。
尝试使用仅通过返回类型区分签名的 ovlDemo() 的两个版本将导致错误。
返回类型的差异不足以实现Java中的方法重载。
该示例显示,具有相同签名的两个方法,即使返回类型不同,也会导致错误。
Java 执行自动类型转换,这些转换也适用于重载方法的参数。
该示例显示了 f() 方法的两个版本:一个具有 int 参数,另一个具有 double 参数。
byte和short类型的值自动转换为int,调用f(int)方法。
通过调用f(double)方法将Float值转换为double。
当参数和参数之间没有直接匹配时,会发生自动转换。
添加带有字节参数的 f() 版本可能会改变值的处理方式。
当前版本,当使用 byte 参数调用 f() 时,直接调用 f(byte),不会自动转换为 int。
方法重载允许Java中的多态性,促进“一个接口,多种方法”范式的实现。
在不支持重载的语言中,不同数据类型的相似方法必须有不同的名称(例如C中的abs()、labs()、fabs())。
Java允许对不同类型参数的方法使用相同的名称,例如Math类的abs()方法,它针对不同的数值类型进行了重载。
重载通过允许相关方法共享一个通用名称来降低复杂性。
方法的正确版本的选择是由编译器根据参数类型完成的。
虽然重载方法可以执行不同的活动,但它们必须相关才能保持清晰度和连贯性。
避免对不相关的操作使用重载方法名称,因为这可能会混淆代码的意图。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3