abstract class Action{
public static final int EAT = 1;
public static final int SLEEP = 5;
public static final int WORK = 10;
public void command(int flag){
switch(flag){
case EAT:
this.eat();
break;
case SLEEP:
this.sleep();
case WORK:
this.work();
break;
case EAT+SLEEP+WORK:
this.sleep();
this.work();
this.eat();
break;
}
}
public abstract void eat();
public abstract void sleep();
public abstract void work();
}
class Humen extends Action{
public void eat(){
System.out.println("人吃饭");
}
public void sleep(){
System.out.println("人睡觉");
}
public void work(){
System.out.println("人工作");
}
}
class Pig extends Action{
public void eat(){
System.out.println("猪吃饭");
}
public void sleep(){
System.out.println("猪睡觉");
}
public void work(){}
}
class Robbot extends Action{
public void eat(){
System.out.println("机器人充电");
}
public void sleep(){}
public void work(){
System.out.println("机器人工作");
}
}
public class testDemo{
public static void main(String args[]){
fun(new Humen());
fun(new Pig());
fun(new Robbot());
}
public static void fun(Action action){
action.command(Action.EAT+Action.SLEEP+Action.WORK);
}
}
JAVA学习笔记(三)模板设计模式(抽象类)
最新推荐文章于 2025-03-01 22:15:07 发布