From c53daf921c762e0a01f6c1fd39d882ca71a6b475 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sun, 25 Jan 2026 10:01:15 +0800 Subject: [PATCH] =?UTF-8?q?day09-=E5=A4=9A=E6=80=81=E7=9A=84=E5=A5=BD?= =?UTF-8?q?=E5=A4=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/inmind/duotai08/test/Assistant.java | 8 ++++ .../src/com/inmind/duotai08/test/Demo09.java | 46 +++++++++++++++++++ .../com/inmind/duotai08/test/Employee.java | 8 ++++ .../src/com/inmind/duotai08/test/Teacher.java | 8 ++++ 4 files changed, 70 insertions(+) create mode 100644 day10/src/com/inmind/duotai08/test/Assistant.java create mode 100644 day10/src/com/inmind/duotai08/test/Demo09.java create mode 100644 day10/src/com/inmind/duotai08/test/Employee.java create mode 100644 day10/src/com/inmind/duotai08/test/Teacher.java diff --git a/day10/src/com/inmind/duotai08/test/Assistant.java b/day10/src/com/inmind/duotai08/test/Assistant.java new file mode 100644 index 0000000..2e51487 --- /dev/null +++ b/day10/src/com/inmind/duotai08/test/Assistant.java @@ -0,0 +1,8 @@ +package com.inmind.duotai08.test; + +public class Assistant extends Employee{ + @Override + public void work() { + System.out.println("辅导员在辅导学生"); + } +} diff --git a/day10/src/com/inmind/duotai08/test/Demo09.java b/day10/src/com/inmind/duotai08/test/Demo09.java new file mode 100644 index 0000000..80d7a1a --- /dev/null +++ b/day10/src/com/inmind/duotai08/test/Demo09.java @@ -0,0 +1,46 @@ +package com.inmind.duotai08.test; +/* +多态的核心好处可以概括为:**“以不变应万变”**—— 通过接口或者父类,应对具体实现的变化。 +它让代码更简洁、更灵活、更易于扩展,是构建大型、可维护系统的关键技术。 + */ +public class Demo09 { + public static void main(String[] args) { + //没有多态的代码编写 + //创建出每个子类对象,固定地执行一段功能代码,调用子类的work + Teacher teacher = new Teacher(); + + Assistant assistant = new Assistant(); + + //以上代码没有多态,所以有50个子类,重复的代码就要编写或封装50次,太繁琐 + //多态写法 + Employee e1 = new Teacher(); + Employee e2 = new Assistant(); + dTWork(e1); + dTWork(e2); + dTWork(teacher); + dTWork(assistant); + } + + //定义一个父类类型接收子类对象,多态的写法 + private static void dTWork(Employee employee) { + System.out.println("hello"); + System.out.println("world"); + employee.work(); + } + + //定义一个重复调用的普通写法 + /*private static void dWork1(Assistant assistant) { + System.out.println("hello"); + System.out.println("world"); + assistant.work(); + } + + private static void dWork(Teacher teacher) { + System.out.println("hello"); + System.out.println("world"); + teacher.work(); + }*/ + + + +} diff --git a/day10/src/com/inmind/duotai08/test/Employee.java b/day10/src/com/inmind/duotai08/test/Employee.java new file mode 100644 index 0000000..bba3184 --- /dev/null +++ b/day10/src/com/inmind/duotai08/test/Employee.java @@ -0,0 +1,8 @@ +package com.inmind.duotai08.test; + +public abstract class Employee { + String name; + int age; + + public abstract void work();//强制子类必须实现重写该方法 +} diff --git a/day10/src/com/inmind/duotai08/test/Teacher.java b/day10/src/com/inmind/duotai08/test/Teacher.java new file mode 100644 index 0000000..02d1377 --- /dev/null +++ b/day10/src/com/inmind/duotai08/test/Teacher.java @@ -0,0 +1,8 @@ +package com.inmind.duotai08.test; + +public class Teacher extends Employee{ + @Override + public void work() { + System.out.println("老师在上课"); + } +}