From d14e00617bc53442f40d3005fa59281cbe4836a1 Mon Sep 17 00:00:00 2001 From: NCJOAQ <2627723488@qq.com> Date: Fri, 18 Jul 2025 07:17:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(class26-28):=20=E6=B7=BB=E5=8A=A0=E6=8A=BD?= =?UTF-8?q?=E8=B1=A1=E7=B1=BB=E5=92=8C=E6=9E=9A=E4=B8=BE=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增抽象类 A 和 Animal,以及它们的子类 B、Cat 和 Dog - 添加抽象方法和具体方法的实现 - 新增枚举类 Direction 和常量类 Constant - 编写测试类 AdstractDemo1 和 Test2,演示抽象类和枚举的使用 --- src/class26/Constant.java | 8 ++++++ src/class26/Direction.java | 5 ++++ src/class26/Test2.java | 52 ++++++++++++++++++++++++++++++++++ src/class27/A.java | 23 +++++++++++++++ src/class27/AdstractDemo1.java | 20 +++++++++++++ src/class27/B.java | 10 +++++++ src/class28/Animal.java | 7 +++++ src/class28/Cat.java | 9 ++++++ src/class28/Dog.java | 8 ++++++ src/class28/Test.java | 8 ++++++ 10 files changed, 150 insertions(+) create mode 100644 src/class26/Constant.java create mode 100644 src/class26/Direction.java create mode 100644 src/class26/Test2.java create mode 100644 src/class27/A.java create mode 100644 src/class27/AdstractDemo1.java create mode 100644 src/class27/B.java create mode 100644 src/class28/Animal.java create mode 100644 src/class28/Cat.java create mode 100644 src/class28/Dog.java create mode 100644 src/class28/Test.java diff --git a/src/class26/Constant.java b/src/class26/Constant.java new file mode 100644 index 0000000..471e0c0 --- /dev/null +++ b/src/class26/Constant.java @@ -0,0 +1,8 @@ +package class26; + +public class Constant { + public static final int UP = 0; + public static final int DOWN = 1; + public static final int LEFT = 2; + public static final int RIGHT = 3; +} diff --git a/src/class26/Direction.java b/src/class26/Direction.java new file mode 100644 index 0000000..9d410cf --- /dev/null +++ b/src/class26/Direction.java @@ -0,0 +1,5 @@ +package class26; + +public enum Direction { + UP, DOWN, LEFT, RIGHT; +} diff --git a/src/class26/Test2.java b/src/class26/Test2.java new file mode 100644 index 0000000..027ae67 --- /dev/null +++ b/src/class26/Test2.java @@ -0,0 +1,52 @@ +package class26; + +public class Test2 { + public static void main(String[] args) { + //枚举应用场景,信息分类和标志 + //way1 + move(Constant.UP);//常量,缺点:1.枚举值不能修改 2.枚举值不能重复 + + //way2 + move2(Direction.UP); + + + } + public static void move2(Direction direction){ + switch (direction){ + case Direction.UP: + System.out.println("向上"); + break; + case Direction.DOWN: + System.out.println("向下"); + break; + case Direction.LEFT: + System.out.println("向左"); + break; + case Direction.RIGHT: + System.out.println("向右"); + break; + default: + System.out.println("无效"); + } + + } + public static void move(int direction){ + switch (direction){ + case Constant.UP: + System.out.println("向上"); + break; + case Constant.DOWN: + System.out.println("向下"); + break; + case Constant.LEFT: + System.out.println("向左"); + break; + case Constant.RIGHT: + System.out.println("向右"); + break; + default: + System.out.println("无效"); + } + + } +} diff --git a/src/class27/A.java b/src/class27/A.java new file mode 100644 index 0000000..c5e5dd8 --- /dev/null +++ b/src/class27/A.java @@ -0,0 +1,23 @@ +package class27; + +import lombok.Getter; +import lombok.Setter; + +public abstract class A { + @Getter + @Setter + private String name; + @Getter + @Setter + private int age; + + public A() { + System.out.println("A无参构造器"); + } + + public abstract void show(); + public void show2(){ + System.out.println("show2"); + }; + +} diff --git a/src/class27/AdstractDemo1.java b/src/class27/AdstractDemo1.java new file mode 100644 index 0000000..de6ba20 --- /dev/null +++ b/src/class27/AdstractDemo1.java @@ -0,0 +1,20 @@ +package class27; + +public class AdstractDemo1 { + public static void main(String[] args) { +// A a = new A(); // 抽象类不能实例化 + + B b = new B(); + b.show(); + b.show2(); + b.setName("张三"); + b.setAge(18); + System.out.println(b.getName()); + System.out.println(b.getAge()); + + + + + } + +} diff --git a/src/class27/B.java b/src/class27/B.java new file mode 100644 index 0000000..dedd8ba --- /dev/null +++ b/src/class27/B.java @@ -0,0 +1,10 @@ +package class27; + +public class B extends A{ + + + @Override + public void show() { + + } +} diff --git a/src/class28/Animal.java b/src/class28/Animal.java new file mode 100644 index 0000000..4f58dba --- /dev/null +++ b/src/class28/Animal.java @@ -0,0 +1,7 @@ +package class28; + +public abstract class Animal { + + public abstract void cry(); + +} diff --git a/src/class28/Cat.java b/src/class28/Cat.java new file mode 100644 index 0000000..e151168 --- /dev/null +++ b/src/class28/Cat.java @@ -0,0 +1,9 @@ +package class28; + +public class Cat extends Animal{ + + @Override + public void cry() { + System.out.println("🐱是喵喵喵地叫~~~"); + } +} diff --git a/src/class28/Dog.java b/src/class28/Dog.java new file mode 100644 index 0000000..7d6fc74 --- /dev/null +++ b/src/class28/Dog.java @@ -0,0 +1,8 @@ +package class28; + +public class Dog extends Animal{ + public void cry() + { + System.out.println("🐕是汪汪汪地叫~~~"); + } +} diff --git a/src/class28/Test.java b/src/class28/Test.java new file mode 100644 index 0000000..452deb1 --- /dev/null +++ b/src/class28/Test.java @@ -0,0 +1,8 @@ +package class28; + +public class Test { + public static void main(String[] args) { + Animal a = new Cat(); + a.cry(); + } +}