写一个在子类中扩充方法的范例
时间: 2024-12-11 07:20:16 浏览: 8
在面向对象编程中,通过子类拓展父类的方法是一种常见的多态应用。下面是一个简单的Java范例,假设我们有一个名为`Shape`的父类,它有一个基本的`draw()`方法。然后我们创建两个子类`Circle`和`Square`,它们分别继承了`Shape`并扩展了`draw()`方法。
```java
// 父类 Shape
class Shape {
public void draw() {
System.out.println("Drawing a shape");
}
}
// 子类 Circle 继承 Shape 并扩展 draw 方法
class Circle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a circle");
}
}
// 另一个子类 Square 同样继承 Shape 并扩展 draw 方法
class Square extends Shape {
@Override
public void draw() {
System.out.println("Drawing a square");
}
}
// 使用场景
public class Main {
public static void main(String[] args) {
Shape myShape = new Circle(); // 创建 Circle 对象赋值给 Shape 类型引用
myShape.draw(); // 输出 "Drawing a circle"
Shape anotherShape = new Square();
anotherShape.draw(); // 输出 "Drawing a square"
}
}
```
在这个例子中,`myShape` 和 `anotherShape` 都是 `Shape` 类型的引用,但实际上分别持有 `Circle` 和 `Square` 的实例。当我们调用 `draw()` 方法时,因为方法已被重写,实际执行的是各自子类的版本,这就是多态的具体体现。
阅读全文