4.1Java方法的重载(overloading)

Java编程语言支持重载方法,而Java可以区分具有不同方法签名的方法。这意味着,如果类中的方法具有不同的参数列表,则它们可以具有相同的名称(对此有一些限定条件,需参考“接口与继承”的教程)。

假设您有一个可以使用书法绘制各种类型的数据(字符串,整数等)的类,并且该类包含一种绘制每种数据类型的方法。这是麻烦的使用一个新的名称为每个方法,例如,drawStringdrawIntegerdrawFloat,等。在Java编程语言中,您可以对所有绘图方法使用相同的名称,但可以将不同的参数列表传递给每个方法。因此,数据绘图类可能会声明四个名为的方法draw,每个方法都有一个不同的参数列表。

public class DataArtist {
    ...
    public void draw(String s) {
        ...
    }
    public void draw(int i) {
        ...
    }
    public void draw(double f) {
        ...
    }
    public void draw(int i, double f) {
        ...
    }
}

重载的方法通过传递给方法的参数的数量和类型来区分。在代码示例,draw(String s)并且draw(int i)是不同的和独特的方法,因为它们需要不同的参数类型。

您不能声明多个具有相同名称,相同数量和类型的参数的方法,因为编译器无法区分它们。

区分方法时,编译器不会考虑返回类型,因此即使两个方法具有不同的返回类型,也无法声明具有相同签名的两个方法。

注意: 应谨慎使用重载方法,因为它们会使代码的可读性大大降低。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/java/javabasic/2523.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注