java学习-----------------抽象类应用(模板设计)

本文介绍了一种使用Java实现的模板设计模式案例。该案例通过抽象类定义了共同的行为(如吃饭、睡觉和工作),并由具体子类(机器人、人、猪)实现这些行为。通过这种方式,展示了如何根据不同对象调用相同的方法实现不同的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于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(){
    }
  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值