From a98a75c7e593c403aadf916a1454b5e902f85b50 Mon Sep 17 00:00:00 2001 From: Xingzhimeng <3408335915@qq.com> Date: Wed, 8 Apr 2026 22:20:40 +0800 Subject: [PATCH] w5 --- w5/Bike.class | Bin 0 -> 407 bytes w5/Car.class | Bin 0 -> 400 bytes w5/Circle.class | Bin 0 -> 389 bytes w5/Rectangle.class | Bin 0 -> 395 bytes w5/Shape.class | Bin 0 -> 401 bytes w5/ShapeTest.java | 45 +++++++++++++++++++++++++++++++++++++++++++ w5/VehicleTest.java | 46 ++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 91 insertions(+) create mode 100644 w5/Bike.class create mode 100644 w5/Car.class create mode 100644 w5/Circle.class create mode 100644 w5/Rectangle.class create mode 100644 w5/Shape.class create mode 100644 w5/ShapeTest.java create mode 100644 w5/VehicleTest.java diff --git a/w5/Bike.class b/w5/Bike.class new file mode 100644 index 0000000000000000000000000000000000000000..642377e9d3f5e743b3c8396d9d3aaacf69cbc1e0 GIT binary patch literal 407 zcmZvYyGjE=6o&uFZIg9%W7c>VOd%u|rnHDyC|Cs%61LyOA&%}vHnW1Il^}MuQLvF{ zr$vN-K7j8LNnS!cyAf?1m^o+u`OZIQ=HsjX4qy|@DpHurKu0!>X%#sb3T71K8B$xq z6>^&)UM!gmiCyoIGw4;}^8LVRaKCOfY*ONW;4-K+FYuduPlQs|;;I!Bv;Gql+8TM~^)P3mO)&MECB96S7o( zEXh1HEZdgbD%Z~2k~`Fb7f6PDH98Sq`M?*htVy3+PKCkvM<&D55VEQDd~sYjwv;5d zDkT%ENYdYgBSw?@2SbLk6^e{va{U$TnG$+Dt*J=VX`T2**Qhi^GcSnc;yon(a5Zwx M5o!>k5fsDZHy=!0hyVZp literal 0 HcmV?d00001 diff --git a/w5/Car.class b/w5/Car.class new file mode 100644 index 0000000000000000000000000000000000000000..b0e13b67013efd3d6d3fb1b6487b82497f82be07 GIT binary patch literal 400 zcmZvY%}N4M7>3{D-_dbO)22TQ+6dYrmo1DoLMw@2#QkUoJ2B40cqZrq+Cn2fiQP^L#JgId5MtuK>2Nsv&{d6f(#rF{dGiJjXnT!I0RN zj#N7g(Nej|5UaTdf+16vj@a|NE#Wn+mQ703^Bo4wbbYTac4a7Ko8nNmZP5@twRvQn zSUNb891A)YvBXda9xp%oqw(k_xVjC_?#IK2_viER^~LAifMZ$53JPRgvpfd=<3+Ba zQ^mHNPQ^U!DbXdw^%a9rpWH~dvhPVpnaUGZx5|+JM<&DL5VC1!qck0yS}Kw|)p8T- zh|{NpCqhAsgCRxT8dXL$zA*&rQ$w$&oS2B5a{3o7(rAdLo)F1J2Z;UQ+Qd~OG);(3 HPy{pIr-oS> literal 0 HcmV?d00001 diff --git a/w5/Circle.class b/w5/Circle.class new file mode 100644 index 0000000000000000000000000000000000000000..ed999face089f470cd1ea30e5b11676c69ee403a GIT binary patch literal 389 zcmZvY&q~8U5XQevlctGjT3hRXp_fAI!5%$Syc9eY5mI{Jwo6@Ulag)}UqE~T!GkC7 z9`sN_(FgD`gy36v-i4_wShU|g# zr8;ED)Ehkpy&Vh%L!l#maU4zhBJA@1m=t{&@(Tvr3!-o!j%1>_-YK7ou9&I4Gk(q; zn8=w}b+CqYhT_-jZG1hC@2=vv`|9Vzjfo8ho7kdD+cF#^9gMUCv5CJq=KiSZUCxx4 z&^$q;7%H9gL!JH=0*e73oVO+FSB#&B+9;z_tCz7Snrg6bw xQME&vQ8sp;!5*ogmr~58qD^t>7p;*sL9HifrOX`qA8w~z^MtyDI0R|P{{SnVP$vKY literal 0 HcmV?d00001 diff --git a/w5/Rectangle.class b/w5/Rectangle.class new file mode 100644 index 0000000000000000000000000000000000000000..2698806b8af87f33f3ab6eac809ddfb4af5eadeb GIT binary patch literal 395 zcmZvY%}&BV6ot=}(n76(Ao!oKApsY5=>p@%#1%2d67~a3u%CJd{_cWb6ROk1T`RAjK4HKK#V#uC}p5*=@_DLr`429Uma!Ix9 z>yZ>5O%+6vq1;MNoWME_9beiq6x?gl75~T#`Y?uEpZe;H#)YLMdC+WhP(_;lBVGz^ z8X7bYRXda!<@D|=*fSOMUW!^G7AY?MqBUxb(d-M9VrmTa4>uCmGNBbhOo9|F{{Yl~ BR44!d literal 0 HcmV?d00001 diff --git a/w5/Shape.class b/w5/Shape.class new file mode 100644 index 0000000000000000000000000000000000000000..9c0576e5045f1a2688a27ea06bcf50fd7b68354d GIT binary patch literal 401 zcmZvY&rZTX5XQeLltQh5Mf`8#g#DBn-@^*IpFuj{h-|h{pT3Ew6L65D3d}OTlh1;zjw|cT2{E?iC zQ6L9An-}syu^z+9tDgAE4V=K2Vo)O#{*ejBFoOCn`^w+O_!f34w_B?;u?3xfC0ZJ9 z9vy@XSDT!Pv%dWddgOv%%`p{=8ppXGw8Yj3%{)P~6JsQQaWn3!Ga4B!hBVB70eQ() A+W-In literal 0 HcmV?d00001 diff --git a/w5/ShapeTest.java b/w5/ShapeTest.java new file mode 100644 index 0000000..d80837e --- /dev/null +++ b/w5/ShapeTest.java @@ -0,0 +1,45 @@ +// 1. 定义父类 Shape +class Shape { + // 父类的 draw() 方法,子类可以重写 + public void draw() { + System.out.println("绘制通用图形"); + } +} + +// 2. 定义子类 Circle,继承 Shape,重写 draw() +class Circle extends Shape { + @Override + public void draw() { + System.out.println("绘制圆形 ⭕"); + } +} + +// 3. 定义子类 Rectangle,继承 Shape,重写 draw() +class Rectangle extends Shape { + @Override + public void draw() { + System.out.println("绘制矩形 🟦"); + } +} + +// 4. 主类,包含 drawShape 方法和 main 测试方法 +public class ShapeTest { + // 多态方法:接收 Shape 类型参数,调用其 draw() + public static void drawShape(Shape s) { + s.draw(); // 动态绑定:实际调用传入对象的 draw() + } + + public static void main(String[] args) { + // 测试1:传入 Circle 对象 + Shape circle = new Circle(); + drawShape(circle); + + // 测试2:传入 Rectangle 对象 + Shape rectangle = new Rectangle(); + drawShape(rectangle); + + // 测试3:直接传入对象(更简洁) + drawShape(new Circle()); + drawShape(new Rectangle()); + } +} diff --git a/w5/VehicleTest.java b/w5/VehicleTest.java new file mode 100644 index 0000000..233e0a6 --- /dev/null +++ b/w5/VehicleTest.java @@ -0,0 +1,46 @@ +// 抽象父类Vehicle +abstract class Vehicle { + public abstract void run(); +} + +// 子类Car +class Car extends Vehicle { + @Override + public void run() { + System.out.println("小汽车在公路上行驶"); + } +} + +// 子类Bike +class Bike extends Vehicle { + @Override + public void run() { + System.out.println("自行车在非机动车道行驶"); + } +} + +// 子类Truck +class Truck extends Vehicle { + @Override + public void run() { + System.out.println("卡车在货运道路行驶"); + } +} + +// 主类 +public class VehicleTest { + public static void main(String[] args) { + // 创建Vehicle数组,存放不同车辆 + Vehicle[] vehicles = { + new Car(), + new Bike(), + new Truck() + }; + + // 遍历调用run() + System.out.println("=== 车辆行驶测试 ==="); + for (Vehicle v : vehicles) { + v.run(); + } + } +}