彦舜原创,CSDN首发:定义三种商品,他们各自具备的对应功能,并使用

本文由彦舜原创并首发于CSDN,介绍如何在Java中使用抽象类定义三种不同的商品,详细阐述了每种商品的特性和功能实现,适合后端开发者学习。
摘要由CSDN通过智能技术生成
package cm.abstracts.application;

//这个类用来测试使用一个行为类
public class ModelFfourtySix {
	public static void main(String[] args) {
		//测试使用类,须通过创建对应类对象
		//创建父类(抽象类)对象,必须通过子类对象的向上转型才能创建
		Action r = new Robot();
		r.command(1);
		r.command(7);
		r.eat();
		r.work();
		
		Action h = new Human();
		h.command(1);
		h.command(7);
		h.command(5);
		h.eat();
		h.work();
		h.sleep();
		
		Action p = new Pig();
		p.command(1);
		p.command(5);
		p.eat();
		p.sleep();
	}
}

//创建抽象类,抽象类必有子类,关键字abstract,继承关系:父类
//定义一个抽象的行为类,行为不是具体的
abstract class Action{
	//关键字final:不可变的量,即常量。static:三个子类具备共同的属性,共享变量。
	//常量名大写,方便与变量进行区分。常量,其值从程序执行一直到结束都不发生改变,是为常量。
	public static final int EAT = 1;
	public static final int SLEEP = 5;
	public static final int WORK = 7;
	
	//抽象每个子类的行为(方法),然后每个子类据此定义(覆写)具体的内容(方法/功能),规定子类的操作标准
	public abstract void eat();
	public abstract void sleep();
	public abstract void work();
	
	//创建一个普通方法,调用抽象类的行为(抽象方法),行为不是具体的
	public void command(int flag) {
		switch(flag) {
		case EAT:
			this.eat();
			break;
			
		case SLEEP:
			this.sleep();
			break;
		
		case WORK:
			this.work();
			break;
		}
	}
}

//创建子类,一个子类只有一个抽象类(父类),关键字extends,父类由抽象方法时覆写父类所有抽象方法
class Robot extends Action{
	//覆写抽象类中的抽象行为,具体化行为
	@Override
	public void eat() {
		System.out.println("机器人正在补充能量" + EAT);
	}

	@Override
	public void work() {
		System.out.println("机器人正在工作" + WORK);
	}

	@Override
	public void sleep() {
//		System.out.println("机器人无法休息,只能不停工作");
	}
}

class Human extends Action{
	//覆写抽象类中的抽象方法,具体化行为
	@Override
	public void eat() {
		System.out.println("到了吃饭时间了" + EAT);
	}

	@Override
	public void sleep() {
		System.out.println("到了睡觉时间了" + SLEEP);
	}

	@Override
	public void work() {
		System.out.println("到了上班时间了" + WORK);
	}
}

class Pig extends Action{
	//覆写抽象类中的抽象行为,具体化行为
	@Override
	public void eat() {
		System.out.println("小猪猪正在吃饭饭" + EAT);
	}

	@Override
	public void work() {
//		System.out.println("小猪猪只有吃饭和睡觉,不能工作");
	}

	@Override
	public void sleep() {
		System.out.println("小猪猪正在睡觉" + SLEEP);
	}
}

彦舜原创,首发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值