From bedf93ddb5868e6d9a60b009e63e1d0f336c72d8 Mon Sep 17 00:00:00 2001 From: WangHe <2260378191@qq.com> Date: Fri, 10 Apr 2026 13:45:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20'w5'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- w5/Shape.java | 20 ++++++++++++++++++++ w5/TestShape.java | 18 ++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 w5/Shape.java create mode 100644 w5/TestShape.java diff --git a/w5/Shape.java b/w5/Shape.java new file mode 100644 index 0000000..cad5e14 --- /dev/null +++ b/w5/Shape.java @@ -0,0 +1,20 @@ +class Shape { + public void draw() { + System.out.println("绘制一个形状"); + } +} + +class Circle extends Shape { + @Override + public void draw() { + System.out.println("绘制一个圆形 ○"); + } +} + +class Rectangle extends Shape { + @Override + public void draw() { + System.out.println("绘制一个矩形 ▭"); + } +} + diff --git a/w5/TestShape.java b/w5/TestShape.java new file mode 100644 index 0000000..6137625 --- /dev/null +++ b/w5/TestShape.java @@ -0,0 +1,18 @@ +// 测试类 +public class TestShape { + // 多态方法:接收父类引用,实际调用子类重写的方法 + public static void drawShape(Shape s) { + s.draw(); // 这里发生多态 + } + + public static void main(String[] args) { + Shape s1 = new Circle(); // 向上转型 + Shape s2 = new Rectangle(); + + drawShape(s1); // 输出:绘制一个圆形 ○ + drawShape(s2); // 输出:绘制一个矩形 ▭ + + // 直接用子类对象也可以 + drawShape(new Circle()); + } +} \ No newline at end of file