咖啡店售货。
几段关于继承、抽象类的代码。
如下——
首先,定义一个抽象父类Coffee
abstract class Coffee {//定义抽象父类
abstract double Coffee(int a);//定义抽象方法MF·1
}
然后,定义它的派生实体子类Natie,用它来实现Coffee
package cn.jsu.www8;
class Natie extends Coffee {//定义实体子类
private double cost;//私有数据成员
private String name;
public Natie() {//无参CF·0
}
public double Coffee(int a) { //覆写抽象父类 Coffee的抽象方法来实现
switch (a){
case 1:this.cost = 9.9;break;
case 2:this.cost = 12.9;break;
case 3:this.cost = 15.9;break;
}
return this.cost;
}
public void getName(int a) { //成员方法输出商品名
switch (a) {
case 1:this.name = "褚橙拿铁";break;
case 2:this.name = "美式拿铁";break;
case 3:this.name = "百香拿铁";break;
}
System.out.print(this.name);
}
}
随手定义个类输出信息(也可以让它继承Coffee重复上面的步骤完成一些功能,都行)
public class CoffeeFactory {
public void produce() {//输出点信息
System.out.println("制作完成!");
System.out.println("请慢用~");
}
}
最后写出主方法的类
package cn.jsu.www8;
import java.util.Scanner;
public class Cafe {
public double sale;
public double Sale(double cost) {
this.sale = cost*1.2;
return this.sale;
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
Natie c = new Natie();//Natie实例化对象c
System.out.println("欢迎光临锐猩Coffee~");
System.out.println("请选择商品:");
System.out.println("1-褚橙拿铁\t2-美式拿铁\t3-百香拿铁");
int goods = s.nextInt();
double cost = switch (goods) {//强化的switch
case 1 -> c.Coffee(1);//调用Natie类对象c的方法获取商品的成本价
case 2 -> c.Coffee(2);
case 3 -> c.Coffee(3);
default -> 0;
};
System.out.println("\n加冰?\n1-加冰\t2-不加冰");
Cafe d = new Cafe();//Cafe实例化对象d
d.Sale(cost);//得到商品的销售价
int b = s.nextInt();
if(b == 1) {
d.sale += 3;
}
System.out.println("\n请支付:" + d.sale + "元.");
System.out.println("\n支付成功!您的取货码为:" + 2024 + goods +",预计取货时间为:" + (10 + goods) + "分钟后.");
System.out.print("\n您的Coffee【");
c.getName(goods);//调用c的方法获取商品名称
System.out.print("】正在制作中,请稍后...\n");
CoffeeFactory e = new CoffeeFactory();//Coffee实例化对象e
e.produce();//调用e的方法输出信息
}
}
总结:代码有些地方有点冗余,没多大意义,练手作。继续干巴爹。
标签:case,10,Coffee,21,代码,System,cost,public,out From: https://blog.csdn.net/2303_81040694/article/details/137183007