Browse Source

上传文件至 'W5'

package w5;

// 基础题:Shape类及其子类
abstract class Shape {
    public abstract void draw();
}

class Circle extends Shape {
    private double r;

    public Circle(double r) {
        this.r = r;
    }

    @Override
    public void draw() {
        System.out.println("绘制圆形,半径:" + r);
    }
}

class Rectangle extends Shape {
    private double width;
    private double height;

    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    @Override
    public void draw() {
        System.out.println("绘制矩形,宽:" + width + ",高:" + height);
    }
}

// 工具类
class ShapeUtil {
    public static void drawShape(Shape s) {
        s.draw();
    }
}

// 主类
public class PolymorphismDemo {
    public static void main(String[] args) {
        System.out.println("=== 基础题测试 ===");
        // 测试Shape类
        Shape circle = new Circle(5);
        Shape rectangle = new Rectangle(4, 6);

        ShapeUtil.drawShape(circle);
        ShapeUtil.drawShape(rectangle);
    }
}                                                                                                                                 
1. 任务拆解与思路辅助
(1)基础题:Shape 类与多态实现
核心思路拆解:
抽象父类Shape:定义抽象方法draw(),体现封装思想,统一图形绘制接口。
子类Circle、Rectangle:继承Shape并重写draw(),实现多态的核心前提(子类重写父类方法)。
通用方法drawShape(Shape s):利用父类引用指向子类对象的多态特性,统一调用不同图形的draw()方法。
关键语法提示:
抽象方法定义需加abstract,抽象类不能实例化;
子类重写方法需保证方法名、参数列表、返回值与父类完全一致,且访问权限不能更严格。
逻辑校验建议:先设计类的继承结构,再思考如何通过多态实现统一调用,避免一开始直接写代码
main
pangyaxuan 2 weeks ago
parent
commit
85717058d7
  1. BIN
      W5/屏幕截图 2026-04-06 201413.png

BIN
W5/屏幕截图 2026-04-06 201413.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 KiB

Loading…
Cancel
Save