设计一个父类和一个子类。子类继承父类,同时重写父类的一个方法。编写测试类验证子类继承父类的方法,同时分别调用子类重写后的方法和重写前的该方法。简单一点,我是新手,谢谢
时间: 2025-01-01 12:38:43 浏览: 9
在面向对象编程中,设计一个简单的例子可以帮助理解。假设我们有一个`Shape`父类,它有一个基本的方法`draw()`,所有形状都有绘制的能力。然后我们可以创建一个`Circle`子类,它是`Shape`的实例,但因为圆有自己的特定绘制方式,所以会重写`draw()`方法。
```java
// 父类 Shape
public class Shape {
public void draw() {
System.out.println("Drawing a generic shape.");
}
}
// 子类 Circle 继承自 Shape 并重写 draw() 方法
public class Circle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a circle.");
}
}
// 测试类 Test
public class Test {
public static void main(String[] args) {
// 创建 Shape 和 Circle 的实例
Shape myShape = new Shape();
Circle myCircle = new Circle();
// 调用父类的 draw() 方法
myShape.draw(); // 输出: Drawing a generic shape.
// 调用子类重写后的 draw() 方法
myCircle.draw(); // 输出: Drawing a circle.
// 显示多态效果,这里使用父类型的引用调用子类的方法
Shape drawn = myCircle; // 尽管drawn是Circle类型,但我们声明为Shape类型
drawn.draw(); // 输出: Drawing a circle. (实际运行的是Circle的draw()方法)
}
}
```
在这个例子中,通过`Test`类,你可以看到如何利用多态调用子类的重写方法,以及父类方法的默认行为。这展示了多态允许你在运行时动态地选择最适合的对象的行为。
阅读全文