feat(class26-28): 添加抽象类和枚举相关代码

- 新增抽象类 A 和 Animal,以及它们的子类 B、Cat 和 Dog
- 添加抽象方法和具体方法的实现
- 新增枚举类 Direction 和常量类 Constant
- 编写测试类 AdstractDemo1 和 Test2,演示抽象类和枚举的使用
This commit is contained in:
2025-07-18 07:17:25 +08:00
parent da8ed0e2b5
commit d14e00617b
10 changed files with 150 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -0,0 +1,5 @@
package class26;
public enum Direction {
UP, DOWN, LEFT, RIGHT;
}

52
src/class26/Test2.java Normal file
View File

@@ -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("无效");
}
}
}

23
src/class27/A.java Normal file
View File

@@ -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");
};
}

View File

@@ -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());
}
}

10
src/class27/B.java Normal file
View File

@@ -0,0 +1,10 @@
package class27;
public class B extends A{
@Override
public void show() {
}
}

7
src/class28/Animal.java Normal file
View File

@@ -0,0 +1,7 @@
package class28;
public abstract class Animal {
public abstract void cry();
}

9
src/class28/Cat.java Normal file
View File

@@ -0,0 +1,9 @@
package class28;
public class Cat extends Animal{
@Override
public void cry() {
System.out.println("🐱是喵喵喵地叫~~~");
}
}

8
src/class28/Dog.java Normal file
View File

@@ -0,0 +1,8 @@
package class28;
public class Dog extends Animal{
public void cry()
{
System.out.println("🐕是汪汪汪地叫~~~");
}
}

8
src/class28/Test.java Normal file
View File

@@ -0,0 +1,8 @@
package class28;
public class Test {
public static void main(String[] args) {
Animal a = new Cat();
a.cry();
}
}