feat(class26-28): 添加抽象类和枚举相关代码
- 新增抽象类 A 和 Animal,以及它们的子类 B、Cat 和 Dog - 添加抽象方法和具体方法的实现 - 新增枚举类 Direction 和常量类 Constant - 编写测试类 AdstractDemo1 和 Test2,演示抽象类和枚举的使用
This commit is contained in:
8
src/class26/Constant.java
Normal file
8
src/class26/Constant.java
Normal 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;
|
||||
}
|
||||
5
src/class26/Direction.java
Normal file
5
src/class26/Direction.java
Normal file
@@ -0,0 +1,5 @@
|
||||
package class26;
|
||||
|
||||
public enum Direction {
|
||||
UP, DOWN, LEFT, RIGHT;
|
||||
}
|
||||
52
src/class26/Test2.java
Normal file
52
src/class26/Test2.java
Normal 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
23
src/class27/A.java
Normal 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");
|
||||
};
|
||||
|
||||
}
|
||||
20
src/class27/AdstractDemo1.java
Normal file
20
src/class27/AdstractDemo1.java
Normal 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
10
src/class27/B.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package class27;
|
||||
|
||||
public class B extends A{
|
||||
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
|
||||
}
|
||||
}
|
||||
7
src/class28/Animal.java
Normal file
7
src/class28/Animal.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package class28;
|
||||
|
||||
public abstract class Animal {
|
||||
|
||||
public abstract void cry();
|
||||
|
||||
}
|
||||
9
src/class28/Cat.java
Normal file
9
src/class28/Cat.java
Normal 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
8
src/class28/Dog.java
Normal 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
8
src/class28/Test.java
Normal file
@@ -0,0 +1,8 @@
|
||||
package class28;
|
||||
|
||||
public class Test {
|
||||
public static void main(String[] args) {
|
||||
Animal a = new Cat();
|
||||
a.cry();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user