在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函数重载在继承中的应用的详细内容。请关注图灵教育的其他相关文章!