diff --git a/W5/shape/Shape1.java b/W5/shape/Shape1.java new file mode 100644 index 0000000..b6bbc21 --- /dev/null +++ b/W5/shape/Shape1.java @@ -0,0 +1,31 @@ +// 1. 定义父类 Shape1 +class Shape1 { + // 父类的 draw 方法 + public void draw() { + System.out.println("绘制形状"); + } +} + +// 2. 定义子类 Circle 继承 Shape1 并重写 draw 方法 +class Circle extends Shape1 { + @Override + public void draw() { + System.out.println("绘制圆形"); + } +} + +// 3. 定义子类 Rectangle 继承 Shape1 并重写 draw 方法 +class Rectangle extends Shape1 { + @Override + public void draw() { + System.out.println("绘制矩形"); + } +} + +// 4. 定义工具类,包含 drawShape 方法 +class ShapeDrawer { + // 接收 Shape1 类型参数,调用 draw 方法 + public void drawShape(Shape1 s) { + s.draw(); + } +} \ No newline at end of file diff --git a/W5/shape/ShapeTest.java b/W5/shape/ShapeTest.java new file mode 100644 index 0000000..f1e97ae --- /dev/null +++ b/W5/shape/ShapeTest.java @@ -0,0 +1,17 @@ +// 5. 主类,包含 main 方法进行测试 +public class ShapeTest { + public static void main(String[] args) { + // 创建对象 + Shape1 circle = new Circle(); + Shape1 rectangle = new Rectangle(); + Shape1 generalShape = new Shape1(); + + // 创建工具类对象 + ShapeDrawer drawer = new ShapeDrawer(); + + // 调用 drawShape 方法,体现多态 + drawer.drawShape(generalShape); // 输出:绘制形状 + drawer.drawShape(circle); // 输出:绘制圆形 + drawer.drawShape(rectangle); // 输出:绘制矩形 + } +} \ No newline at end of file diff --git a/W5/shape测试运行.png b/W5/shape测试运行.png new file mode 100644 index 0000000..0955285 Binary files /dev/null and b/W5/shape测试运行.png differ