php中文网

Java函数重载在继承中的应用

php中文网

java中函数重载允许类中存在同名异参方法,而继承中重载父类的方法既不会覆盖原有方法,又会提供同名异参的方法。例如,子类circle继承父类shape的draw()方法,又重载了该方法,提供了一个带半径参数的draw()方法。这样,circle类既可以绘制无参形状,又可以绘制带参圆形。

Java 函数重载在继承中的应用

Java 中的函数重载是指一个类中可以存在多个具有相同名称但参数不同的方法。当一个子类继承父类时,子类可以重写父类的方法,但也可以重载父类的方法。重载父类的方法与重写父类的方法不同,重载的方法不会覆盖父类的方法,而是提供了一个具有相同名称但不同参数的方法。

实战案例

立即学习“Java免费学习笔记(深入)”;

假设我们有一个父类 Shape,它有一个名为 draw() 的方法来绘制形状。现在,我们创建一个子类 Circle,它继承自 Shape。Circle 类也需要一个 draw() 方法来绘制圆。但是,Circle 的 draw() 方法需要一个半径参数,而 Shape 的 draw() 方法则不需要参数。

代码示例

// Shape 类
class Shape {
    public void draw() {
        System.out.println("Drawing a shape.");
    }
}

// Circle 类
class Circle extends Shape {
    @Override
    public void draw() {
        super.draw();  // 调用父类的 draw() 方法
        System.out.println("Drawing a circle.");
    }

    public void draw(double radius) {
        System.out.println("Drawing a circle with radius: " + radius);
    }
}

在这个例子中,Circle 类重载了父类 Shape 的 draw() 方法。第一个 draw() 方法不带参数,调用父类的 draw() 方法来绘制一个形状。第二个 draw() 方法接受一个半径参数,专门用于绘制圆。

我们可以在 Main 类中创建 Circle 对象并调用这两个 draw() 方法:

public class Main {
    public static void main(String[] args) {
        Circle circle = new Circle();
        circle.draw();   // 调用不带参数的 draw() 方法
        circle.draw(5.0);  // 调用带有半径参数的 draw() 方法
    }
}

输出结果:

Drawing a shape.
Drawing a circle with radius: 5.0

以上就是Java函数重载在继承中的应用的详细内容,更多请关注php中文网其它相关文章!