在Java中,方法覆盖和方法重载是两个重要的概念。本文将介绍它们的区别和使用方法。
方法覆盖是指在子类中实现与父类方法同名的方法,并且参数和返回值类型都相同。在调用该方法时,将会优先调用子类的方法,而不是父类的方法。此时,子类的方法实现将覆盖父类的方法实现。
public class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
public class Cat extends Animal {
public void eat() {
System.out.println("Cat is eating");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
animal.eat(); // 输出 "Animal is eating"
Cat cat = new Cat();
cat.eat(); // 输出 "Cat is eating"
}
}
方法重载是指在一个类中,有多个方法同名但参数类型或个数不同。在调用该方法时,将会根据传入参数的类型或个数选择调用相应的方法。方法重载可以让程序更加灵活,因为一个方法可以处理不同类型的数据。
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
System.out.println(calculator.add(1, 2)); // 输出 3
System.out.println(calculator.add(1.0, 2.0)); // 输出 3.0
}
}
总结来说,方法覆盖是子类实现与父类同名的方法;方法重载是在同一个类中实现多个同名的方法,但参数类型或个数不同。了解它们的使用方法可以让我们更好的设计和实现程序。