简述方法的重载和方法的覆盖的区别,并举例说明
时间: 2023-11-22 10:56:55 浏览: 51
方法的重载和方法的覆盖是面向对象编程中常用的概念,它们的主要区别在于它们适用的场景不同。
方法的重载指的是在同一个类中,使用相同的方法名,但是参数类型、数量、顺序不同,实现不同的操作。例如:
```
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
```
上述代码中,`Calculator` 类中有两个名为 `add` 的方法,一个接收两个 `int` 类型的参数,另一个接收两个 `double` 类型的参数,这就是方法的重载。
方法的覆盖指的是在子类中重新定义了父类中已经存在的方法,方法名、参数列表必须完全相同,返回值类型和访问修饰符可以不同,子类的方法将会覆盖父类的方法。例如:
```
public class Animal {
public void makeSound() {
System.out.println("吼吼");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("喵喵");
}
}
```
上述代码中,`Cat` 类继承自 `Animal` 类,并且重新定义了 `makeSound` 方法,覆盖了 `Animal` 类中的 `makeSound` 方法。
总之,方法的重载是在同一个类中,根据参数的不同实现不同的操作;方法的覆盖是在子类中重新定义了父类中已经存在的方法,实现不同的操作。