Java 中同名方法的重载和覆写34


在 Java 编程语言中,我们可以为同一个类定义多个具有相同名称但不同参数列表的方法,这称为方法重载。此外,我们可以为子类定义与父类中具有相同名称和参数列表的方法,这称为方法覆写。

方法重载

方法重载允许我们在同一个类中定义多个具有相同名称但不同参数列表的方法。编译器将根据传入参数的类型和数量来决定调用哪个方法。重载方法必须具有不同的参数列表,它们可以不同于参数的类型、数量或顺序。

例如,我们可以在一个名为 Shape 的类中定义以下重载方法:```java
class Shape {
public void draw() {
("Drawing a shape");
}
public void draw(int width, int height) {
("Drawing a shape with width " + width + " and height " + height);
}
}
```

我们可以使用以下代码来调用重载方法:```java
Shape shape = new Shape();
(); // 调用无参 draw() 方法
(5, 10); // 调用带参 draw() 方法
```

方法覆写

方法覆写发生在子类中定义与父类中具有相同名称和相同参数列表的方法时。子类方法将替换父类方法的实现。覆写方法可以提供父类方法的修改或专门化版本。

例如,我们可以在 Rectangle 类(从 Shape 类继承)中覆写 draw() 方法:```java
class Rectangle extends Shape {
@Override
public void draw() {
("Drawing a rectangle");
}
}
```

当我们实例化 Rectangle 对象并调用 draw() 方法时,将执行子类的方法,而不是父类的方法:```java
Rectangle rectangle = new Rectangle();
(); // 调用子类 draw() 方法
```

重载和覆写的区别

方法重载和覆写是 Java 中不同的概念,具有不同的目的和实现方式。它们的主要区别如下:* 发生的位置:重载发生在同一个类中,而覆写发生在子类中。
* 参数列表:重载方法具有不同的参数列表,而覆写方法具有与父类方法相同的参数列表。
* 继承:重写的方法继承自父类,而重载的方法不是。

何时使用重载和覆写

重载用于提供同一方法的不同版本,具有不同的参数列表。这可以增强代码的可读性和可维护性。覆写用于创建子类特定实现,扩展或修改父类的方法。

选择使用重载还是覆写取决于具体情况。如果我们想要提供同一方法的不同版本,则应该使用重载。如果我们想要在子类中提供父类方法的自定义实现,则应该使用覆写。

2024-11-05


上一篇:Java 代码覆盖率:深入指南

下一篇:如何在 Java 中判断字符串是否包含中文