彦舜原创,优快云首发:定义三种商品,他们各自具备的对应功能,并使用(2)——重点

本文作者彦舜,为优快云原创。深入探讨Java编程中面向对象思想,通过抽象类定义三种不同商品,详细阐述它们各自的功能特性,适合Java初学者及面试复习。

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

package cm.abstracts.application;

public class InstanceFfourtyEight {
	public static void main(String[] args) {
		//主类主方法,所有程序入口,执行起点
//		分布4:各个子类的具体操作由主类主方法发出命令
		//通过创建对应子类对象的向上转型,实例父类(抽象类)对象
		//通过创建Robot类对象的向上转型,创建父类对象
		Abstract a = new Robot2();
		a.program();
		
		//通过创建对应Human类对象的向上转型,创建抽象类对象
		Abstract b = new Human2();
		b.program();
		
		//通过创建对应Pig类对象的向上转型,创建抽象类对象
		Abstract c = new Pig2();
		c.program();
	}
}

/** 按照以上的设计思路,实际上可以对程序做进一步的扩展,现在假设有3类事物:机器人(Robot)、人类(Human)
 、猪(pig)
 
 	现在要求实现对以上事物的控制,即可以控制机器人、人类、猪的操作行为,具体化每个实际事物类,即(覆写抽象类中的抽象方法)。
  再由父类(抽象类)中的普通方法直接调用本类中的抽象方法,最后由行为类(创建实例化对象)发出具体的操作命令,即主类主方法。
  
    分步1:首先应该对行为进行抽象,
    分布2:对应每种行为创建出具体的对应子类
    分步3:具体化对应子类,即覆写抽象类中的所有抽象方法
    分布4:子类的具体操作由主类主方法发出命令
*/

//分步1:首先应该对行为进行抽象,声明一个抽象类,必有子类,类中普通方法直接调用该抽象类的抽象方法
abstract class Abstract{
	//定义各个事物共有的共同的属性/特征,常量,由此保存在底层的公共数据区
	public static final String EAT = "大家都在吃饭";
	public static final String SLEEP = "大家正在休息";
	public static final String WORK = "大家正在工作";
	
	
	//创建抽象类中的一个普通方法
	public void program() {
		//普通方法直接调用本抽象类中的抽象方法
		this.eat();
		this.sleep();
		this.work();
	}
	
	//分步1:首先应该对每种行为/功能进行抽象化
	protected abstract void eat();
	protected abstract void sleep();
	protected abstract void work();
}

//三个实际研发对象,即三个实际事物三个子类,每个研发事物(子类)覆写父类中的抽象方法,由三个子类分别决定其具体内容
//创建子类1:机器人(Robot)
//分步2:对应每种行为创建出具体的对应子类
class Robot2 extends Abstract{
	//分步3:具体化对应子类,即覆写抽象类中的所有抽象方法
	@Override
	public void work() {
		System.out.println("机器人正在努力工作!");
	}
	
	@Override
	public void sleep() {
		System.out.println("我们都知道,机器人无法睡觉无法休息的");
	}
	
	@Override
	public void eat() {
		System.out.println("机器人正在补充能量!");
	}
}

//分布2:对应每种行为创建出具体的对应子类
//创建子类2:人类(Human)
class Human2 extends Abstract{
	//分步4:具体化对应子类,即覆写抽象类中的所有抽象方法
	@Override 
	public void work() {
		System.out.println("人为了梦想在努力工作!");
	}
	
	@Override
	public void sleep() {
		System.out.println("人类正在睡觉休息!");
	}
	
	@Override
	public void eat() {
		System.out.println("人类正在吃饭!");
	}
}

//分布2:对应每种行为创建出具体的对应子类
//创建子类3:猪(Pig)
class Pig2 extends Abstract{
	//分步4:具体化对应子类,即覆写抽象类中的所有抽象方法
	@Override
	public void work() {
		System.out.println("猪猪每天除了吃就是睡,无法工作噢");
	}
	
	@Override
	public void sleep() {
		System.out.println("猪在睡觉养膘!");
	}
	
	@Override
	public void eat() {
		System.out.println("猪猪正在吃饭!");
	}
}

彦舜原创,优快云首发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值