From 72ce27a88f64757f6ee11d5e7ad6f30ef9717f76 Mon Sep 17 00:00:00 2001 From: linhe Date: Thu, 2 Apr 2026 17:38:29 +0800 Subject: [PATCH] w5 --- w5/MainFiveAdvanced.java | 37 ++++++++++++++++++++++++++++++++++ w5/MainFiveBasic.java | 43 ++++++++++++++++++++++++++++++++++++++++ w5/usage.md | 16 +++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 w5/MainFiveAdvanced.java create mode 100644 w5/MainFiveBasic.java create mode 100644 w5/usage.md diff --git a/w5/MainFiveAdvanced.java b/w5/MainFiveAdvanced.java new file mode 100644 index 0000000..6ef7041 --- /dev/null +++ b/w5/MainFiveAdvanced.java @@ -0,0 +1,37 @@ +public class MainFiveAdvanced { + public abstract static class Vehicle { + public abstract void run(); + } + + public static class Car extends Vehicle { + public void run() { + System.out.println("This is car running!"); + } + } + + public static class Bike extends Vehicle { + public void run() { + System.out.println("This is bike running!"); + } + } + + public static class Truck extends Vehicle { + public void run() { + System.out.println("This is truck running!"); + } + } + + public static void main(String[] args) { + Vehicle[] vehicles = new Vehicle[5]; + + vehicles[0] = new Car(); + vehicles[1] = new Bike(); + vehicles[2] = new Truck(); + vehicles[3] = new Car(); + vehicles[4] = new Truck(); + + for (Vehicle vehicle : vehicles) { + vehicle.run(); + } + } +} diff --git a/w5/MainFiveBasic.java b/w5/MainFiveBasic.java new file mode 100644 index 0000000..87d1bc4 --- /dev/null +++ b/w5/MainFiveBasic.java @@ -0,0 +1,43 @@ +public class MainFiveBasic { + public static abstract class Shape { + public abstract void draw(); + } + + public static class Circle extends Shape { + private final Double radius; + + public Circle(Double radius) { + this.radius = radius; + } + + public void draw() { + System.out.println("Drawing a circle of radius " + radius); + } + } + + public static class Rectangle extends Shape { + private final Double side1; + private final Double side2; + + public Rectangle(Double side1, Double side2) { + this.side1 = side1; + this.side2 = side2; + } + + public void draw() { + System.out.println("Drawing a rectangle of " + side1 + " * " + side2); + } + } + + public static void drawShape(Shape s) { + s.draw(); + } + + public static void main(String[] args) { + Shape circle = new Circle(1.23); + Shape rectangle = new Rectangle(1.23, 4.56); + + drawShape(circle); + drawShape(rectangle); + } +} diff --git a/w5/usage.md b/w5/usage.md new file mode 100644 index 0000000..47eaea9 --- /dev/null +++ b/w5/usage.md @@ -0,0 +1,16 @@ +# 使用 + +```console +$ javac MainFiveBasic.java && java MainFiveBasic +Drawing a circle of radius 1.23 +Drawing a rectangle of 1.23 * 4.56 +``` + +```console +$ javac MainFiveAdvanced.java && java MainFiveAdvanced +This is car running! +This is bike running! +This is truck running! +This is car running! +This is truck running! +```