用例子来描述java方法重写和方法重载的区别
时间: 2023-09-14 07:11:57 浏览: 46
Java中方法重载和方法重写都是实现多态的方式,但它们有着不同的实现方式和使用场景,具体区别如下:
方法重载(Overloading):在同一个类中,方法名称相同,但参数列表不同的方法称为方法重载。方法重载的目的是为了方便程序员,可以通过方法名直接调用不同的方法实现相似的功能。举个例子:
```java
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` 类型的参数。这两个方法名称相同,但参数列表不同,因此它们构成了方法的重载。
方法重写(Overriding):在子类中重新定义与父类中同名、同参数列表的方法,称为方法的重写。方法重写的目的是为了实现多态性,即同一个方法在不同的对象中具有不同的实现。举个例子:
```java
public class Animal {
public void say() {
System.out.println("I am an animal.");
}
}
public class Dog extends Animal {
@Override
public void say() {
System.out.println("I am a dog.");
}
}
```
上面的代码中,`Animal` 类中定义了一个名为 `say` 的方法,而 `Dog` 类继承了 `Animal` 类,并重新定义了 `say` 方法,实现了对 `Animal` 类中方法的重写。在 `Dog` 类中调用 `say` 方法时,会输出 `I am a dog.` 的内容。
可以看出,方法重载和方法重写都是实现多态的方式,但它们的实现方式和使用场景有所不同。方法重载主要用于实现相似的功能而方法重写则用于实现不同的功能。在使用时需要根据具体的情况选择使用哪种方式。