在Java中,方法的覆写(Override)和重载(Overload)是两个重要的概念,它们允许在类中定义具有相同名称但具有不同行为的多个方法。

方法覆写(Override):

方法覆写是指子类提供了与其父类中具有相同名称、参数类型和返回类型的方法。覆写是实现多态性的一种方式。
class Animal {
    void makeSound() {
        System.out.println("Some generic sound");
    }
}

class Dog extends Animal {
    // 子类覆写了父类的方法
    void makeSound() {
        System.out.println("Bark bark!");
    }
}

public class OverrideExample {
    public static void main(String[] args) {
        // 创建子类对象
        Dog myDog = new Dog();

        // 调用子类覆写的方法
        myDog.makeSound();
    }
}

方法重载(Overload):

方法重载是指在同一个类中可以定义多个方法,它们具有相同的名称但参数列表不同(个数、类型或顺序)。重载是发生在同一个类中的。
class Calculator {
    int add(int a, int b) {
        return a + b;
    }

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

    // 不同的参数类型
    int add(int a, int b, int c) {
        return a + b + c;
    }
}

public class OverloadExample {
    public static void main(String[] args) {
        Calculator myCalculator = new Calculator();

        // 调用不同版本的方法
        System.out.println(myCalculator.add(5, 3));
        System.out.println(myCalculator.add(2.5, 3.5));
        System.out.println(myCalculator.add(1, 2, 3));
    }
}

总结:

  •  覆写涉及到子类覆写父类的方法,具有相同的名称和签名(参数类型、个数和返回类型)。

  •  重载涉及到同一个类中定义多个方法,具有相同的名称但参数列表不同。


这两者共同为Java提供了更灵活和强大的方法使用方式。


转载请注明出处:http://www.zyzy.cn/article/detail/13481/Java