From 0afb277b7e5c17d29e2bb595b847240b4180ccf6 Mon Sep 17 00:00:00 2001 From: Zhuhuairui <3180158655@qq.com> Date: Wed, 20 May 2026 18:48:47 +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/PolymorphismTest.class | Bin 0 -> 1794 bytes w5/PolymorphismTest.java | 76 ++++++++++++++++++++++++++++++++++++++ w5/ShapeTest.class | Bin 0 -> 838 bytes w5/ShapeTest.java | 40 ++++++++++++++++++++ w5/VehicleTest.java | 37 +++++++++++++++++++ 5 files changed, 153 insertions(+) create mode 100644 w5/PolymorphismTest.class create mode 100644 w5/PolymorphismTest.java create mode 100644 w5/ShapeTest.class create mode 100644 w5/ShapeTest.java create mode 100644 w5/VehicleTest.java diff --git a/w5/PolymorphismTest.class b/w5/PolymorphismTest.class new file mode 100644 index 0000000000000000000000000000000000000000..baaa4c5786e6d5ecb9ff49c63ac64fd8390cf869 GIT binary patch literal 1794 zcmaJ>>r)d~6#rd<>=J{-i1+|BR{!pi;XoEPyx{6Mzmxq&KOKEAT+qm9m#QL8M z^&7u*CC6{MNoR)(n>ge+uo<}wo7Mne;KC+cP^Jh)R)`dD!k6SrUX$xqGV*CH0a4a? zY$xLS+=KXZ2akM)?Bv+P#Mo`)-b`Y+Papl>jxE?>R$(WDXAQiXnzdr^*hR3${T}`9 zT^_p`9Lf3d`0S)U^<845i^CpbP%jGpCNaX}WroZ|PggS9rccLsc*xqg^`p@}mYDt8 z7--KZUnr-hfXZ5kS4=7g|AWeECMP`&JYFSyJ=VX3f0*#i41d0*$F3Ozy&2`d-Av)T z==+8PM{$fg5E7cjN=5by+IdN9qLr!%vZk6vt?{f5#N#c7?WwkPM2&kL@tGODuRp%< z&}bXCI>({Jfl_mrxPYXFgF-8h;|yEvDW~ZDWb`WaIywApV)Ulz!Q%vjSATTJh_=P& z`t{C*r*n6NK)@QZB1^c#9(Q7PFg_jCAGIfXuf?ak_1^1=iCKN1i$^6xwJ|lTcRomT z{Hl-L(I*Cs=2DqtDIgvB~884@UP8 zhf_4mbxN=`q(s6^k{YTPRhr`TN+lrD*wjk0c%~)PC`Rgq#vo}jpK~>9cCpqX?5$Z^ zcp4b8e45~IJ}rb7ebPgMM01-<=F1mu#o(SH*yl(LcAwG`@rzZG8E^Byxg9hih;xOa zXsQ+w!ly;8NeQStd<;9Sx)`xuy>syCT$}#Ygr#vaH}%e*oq_l5Xux?6ADAO?fuV4j zk|bYIn#E#^nKdO*yelVj5u#EE27QtydTH!yWLb<<1_f0WRSq99>{*r5T2wiF!m#82P3gK@d0`h$ z(&K6VY+&Z|N#82k6_8{k*X^4Eo1g{5+w?V$fnsE$8a1>wO^=YPjpX{geUFF0?aMph zGab@W4jWQOhsg0TJqbtf4xLaWJ0ZM_S_^??(=MG3Mx6F}aJ9D5pOERwp2Wue`R!?J z7F#a3wmEY)+Mc-brcmHp*1Da!8*P8MURt3oyx`jF-0dpL0Wm+YWJ}s&XOZhr4qh|0 zgr7fy*8z%Q#(I;at*jt_2-*7!4o||{ZezoL|7jkTEt-@s$_kRp=~cim2`8YT5?@f6ui_LsNZz2@-KOddQZa_93T8>NkoF8;ayZS{Uj$;q dSyHB<4)2lVsZ90sKZg%#XQ$Oge2h=A?H{LKBD??q literal 0 HcmV?d00001 diff --git a/w5/PolymorphismTest.java b/w5/PolymorphismTest.java new file mode 100644 index 0000000..3efbbe9 --- /dev/null +++ b/w5/PolymorphismTest.java @@ -0,0 +1,76 @@ +abstract class Person { + protected String name; + protected int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + public abstract void display(); +} + +class Student extends Person { + int studentId; + String major; + + public Student(String name, int age, int studentId, String major) { + super(name, age); + this.studentId = studentId; + this.major = major; + } + + @Override + public void display() { + System.out.println("学生信息 - 姓名:" + name + ", 年龄:" + age + + ", 学号:" + studentId + ", 专业:" + major); + } +} + +class Teacher extends Person { + String subject; + double salary; + + public Teacher(String name, int age, String subject, double salary) { + super(name, age); + this.subject = subject; + this.salary = salary; + } + + @Override + public void display() { + System.out.println("教师信息 - 姓名:" + name + ", 年龄:" + age + + ", 科目:" + subject + ", 薪资:" + salary); + } +} + +public class PolymorphismTest { + public static void addPerson(Person[] array, int count, Person p) { + if (count < array.length) { + array[count] = p; + } + } + + public static void main(String[] args) { + Person[] persons = new Person[10]; + int count = 0; + + System.out.println("=== 挑战题测试 ==="); + + persons[count++] = new Student("张三", 20, 1001, "计算机科学"); + persons[count++] = new Student("李四", 22, 1002, "软件工程"); + persons[count++] = new Teacher("王老师", 35, "数据结构", 8000); + persons[count++] = new Teacher("刘老师", 40, "算法分析", 9000); + + System.out.println("添加成功!共添加 " + count + " 人\n"); + + System.out.println("=== 所有人员信息 ==="); + for (int i = 0; i < count; i++) { + persons[i].display(); + } + + System.out.println("\n=== 思考题解答 ==="); + System.out.println("多态优势:addPerson(Person p) 统一处理不同类型"); + System.out.println("添加特定属性问题:使用 instanceof 判断类型后强制转换"); + } +} \ No newline at end of file diff --git a/w5/ShapeTest.class b/w5/ShapeTest.class new file mode 100644 index 0000000000000000000000000000000000000000..512084bb7f0f98777f6e464c97a541ff11eb8e77 GIT binary patch literal 838 zcmZuvOHUI~7(KW1xYKc<2o7zPN((CG)hZemVBIufV?pB(l7`i^o#0?!8Cs1yO^6$# zI}+o@$i}6QL~5w=1Kj!>0CD5imH6GE(U^2z-<^BUJ>NOs{l5O*-2FhcwNwytCS&m zlEODj{BCt^UKmVZgk#je1zaTczQJW@gCqro$&O(?ne#{f4h@oqB$?5V9zWZE{^Vfm z-C=w4=jWGHm~5>?^$F$Nsir9P|-y|7&0ORpTtxL{*AI|v{G-w$hXj&Ya>MQ^x_Bf_eXYc zcJdSAQ}n7|pyj0w%F4?foRwGFw9vvOYe{Swqb<{Oa#Y@%Ris(fR83_YW>hxSnK>Ti zM6{{0H^)DOvVdfq@FotPD#}GKi3OGlK V!{7*UT&9PS@n1y1Fyqr-{R0LDul)c3 literal 0 HcmV?d00001 diff --git a/w5/ShapeTest.java b/w5/ShapeTest.java new file mode 100644 index 0000000..e22cd4f --- /dev/null +++ b/w5/ShapeTest.java @@ -0,0 +1,40 @@ +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("绘制一个矩形 □"); + } +} + +public class ShapeTest { + public static void drawShape(Shape s) { + s.draw(); + } + + public static void main(String[] args) { + Circle circle = new Circle(); + Rectangle rectangle = new Rectangle(); + + System.out.println("=== 基础题测试 ==="); + drawShape(circle); + drawShape(rectangle); + + Shape[] shapes = {new Circle(), new Rectangle(), new Shape()}; + System.out.println("\n遍历数组:"); + for (Shape s : shapes) { + drawShape(s); + } + } +} \ No newline at end of file diff --git a/w5/VehicleTest.java b/w5/VehicleTest.java new file mode 100644 index 0000000..f2c9360 --- /dev/null +++ b/w5/VehicleTest.java @@ -0,0 +1,37 @@ +abstract class Vehicle { + public abstract void run(); +} + +class Car extends Vehicle { + @Override + public void run() { + System.out.println("汽车在公路上行驶 🚗"); + } +} + +class Bike extends Vehicle { + @Override + public void run() { + System.out.println("自行车在自行车道骑行 🚲"); + } +} + +class Truck extends Vehicle { + @Override + public void run() { + System.out.println("卡车在高速公路行驶 🚛"); + } +} + +public class VehicleTest { + public static void main(String[] args) { + Vehicle[] vehicles = {new Car(), new Bike(), new Truck()}; + + System.out.println("=== 进阶题测试 ==="); + System.out.println("车辆运行情况:"); + for (int i = 0; i < vehicles.length; i++) { + System.out.print((i + 1) + ". "); + vehicles[i].run(); + } + } +} \ No newline at end of file