欢迎访问宙启技术站
智能推送

Java函数中的重载和重写概念解析

发布时间:2023-06-16 16:52:17

1. 重载(Overload)

重载指的是在同一个类中,方法名相同但参数类型、个数、顺序等不同,即参数列表不同,这些方法称为重载方法。重载方法的返回类型可以不同,但不能只有返回类型不同而参数列表相同。

重载的方法,可以让同名的方法具有不同的行为。例如:

public class Calculator {

    public int add(int a, int b) {
        return a + b;
    }

    public double add(double a, double b) {
        return a + b;
    }

}

上面的代码中,add(int a, int b)add(double a, double b)都是Calculator类中的同名方法,但参数类型不同,前者传入的是整型,后者传入的是浮点型。

这样做的好处在于,无论用户传入的是整型还是浮点型,都能正确调用对应的方法,实现不同的计算。

2. 重写(Override)

重写指的是子类对父类中同名方法的覆盖,即在子类中定义与父类同名、同签名、同返回值类型的方法。重写的方法必须与被重写的方法具有相同的方法名、参数列表和返回类型,可以有不同的访问修饰符和异常。

重写的方法通常实现的内容是重新定义父类方法,以此实现不同的行为。如果父类方法是私有方法、静态方法或最终方法,那么该方法不能被重写。

重写的方法通常会用@Override注解标记,这样可以方便后续代码的维护和防止错误使用。

例如:

public class Animal {

    public void eat() {
        System.out.println("Animal eat");
    }

}

public class Cat extends Animal {

    @Override
    public void eat() {
        System.out.println("Cat eat");
    }

}

上面的代码中,Cat类继承自Animal类,并重写了其eat方法。当我们调用Cat对象的eat方法时,会输出Cat eat

这样做的好处在于,我们可以扩展父类中的方法,定义子类自己的行为,实现不同的功能。