关于java的学习记录:
/**
* 抽象类应用-----模板设计
* 现有三类事物:
* 机器人:充电、工作
* 人:吃饭、睡觉、工作
* 猪:吃饭、睡觉
* 要求可以实现以上的操作控制,即可以任意的控制人、机器人、猪的操作行为
* 这些不同的类型最终都在行为上成功的进行了抽象,即:如果要想使用行为操作,那么就必须按照Action
* 类的标准来实现子类
*/
public class Demo1 {
public static void main(String[] args) {
fun(new Robot());
fun(new Human());
fun(new Pig());
}
public static void fun(Action act) {
act.command(Action.EAT);
act.command(Action.SLEEP);
act.command(Action.WORK);
}
}
//定义了一个行为类
abstract class Action{
public static final int EAT=1;
public static final int SLEEP=5;
public static final int WORK=7;
public void command(int flag) {
//switch只支持数值判断,而if支持条件判断
switch(flag) {
case EAT:
this.eat();
break;
case SLEEP:
this.sleep();
break;
case WORK:
this.work();
break;
case EAT+WORK:
this.eat();
this.work();
break;
}
}
public abstract void eat();
public abstract void sleep();
public abstract void work();
}
class Robot extends Action{
public void eat() {
System.out.println("机器人正在补充能量");
}
public void sleep(){
}
public void work(){
System.out.println("机器人正在努力工作");
}
}
class Human 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(){
}
}