From bc4e21ff430e745fd6c5eee481a2cc3331722c45 Mon Sep 17 00:00:00 2001 From: YuWeixia Date: Sat, 28 Mar 2026 12:48:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20'w4/Main.java'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- w4/Main.java | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 w4/Main.java diff --git a/w4/Main.java b/w4/Main.java new file mode 100644 index 0000000..370e750 --- /dev/null +++ b/w4/Main.java @@ -0,0 +1,70 @@ +// Shape.java +public abstract class Shape { + public abstract double getArea(); +} + +// Circle.java +public class Circle extends Shape { + private double radius; + + public Circle(double radius) { + this.radius = radius; + } + + @Override + public double getArea() { + return Math.PI * radius * radius; + } +} + +// Rectangle.java +public class Rectangle extends Shape { + private double length; + private double width; + + public Rectangle(double length, double width) { + this.length = length; + this.width = width; + } + + @Override + public double getArea() { + return length * width; + } +} + +// Triangle.java +public class Triangle extends Shape { + private double base; + private double height; + + public Triangle(double base, double height) { + this.base = base; + this.height = height; + } + + @Override + public double getArea() { + return 0.5 * base * height; + } +} + +// ShapeUtil.java +public class ShapeUtil { + public static void printArea(Shape shape) { + System.out.printf("图形面积:%.2f\n", shape.getArea()); + } +} + +// Demo.java(测试类,展示多态) +public class Demo { + public static void main(String[] args) { + Shape circle = new Circle(5.0); + Shape rectangle = new Rectangle(4.0, 6.0); + Shape triangle = new Triangle(3.0, 4.0); + + ShapeUtil.printArea(circle); // 图形面积:78.54 + ShapeUtil.printArea(rectangle); // 图形面积:24.00 + ShapeUtil.printArea(triangle); // 图形面积:6.00 + } +} \ No newline at end of file