抽象类的使用,咖啡

抽象类的使用,咖啡

package jsu.stu.oil;

public class CoffeStore {
    private CoffeFactory factory;

    public Coffee ordercoffee (String type){
        Coffee coffee =factory.creatcoffee(type);
        return coffee;
    }
}
package jsu.stu.oil;

public class CoffeFactory {
    private Coffee Coffee =null;
    private Coffee Redcoffee =null;
    public Blackcoffee creatcoffee(String type) {
        if ("Black".equals(type)) {
            return new Blackcoffee();
        } else if ("Red".equals((type))) {
            return new Redcoffee();
        }

        return null;
    }
}
package jsu.stu.oil;

public class Redcoffee extends Coffee {
    @Override
    public String getName() {
        return "Redcoffee";
    }
}
package jsu.stu.oil;

public abstract class Coffee {
    public abstract String getName();

    public void addmilk(){
        System.out.println("add milk");
    }

}
package jsu.stu.oil;

public class Blackcoffee extends Coffee{
    @Override
    public String getName(){
        return "Blackcoffee";
    }
}
package jsu.stu.oil;

public class Client {
    public static void main(String[] args) {
        CoffeStore store = new CoffeStore();
        Coffee coffee = store.ordercoffee("black");
        System.out.println(coffee.getName());
        System.out.println(coffee);
    }
}
好的,为您实现一个抽象类 Drink,代码如下: ```java public abstract class Drink { private String name; private double price; public Drink(String name, double price) { this.name = name; this.price = price; } public String getName() { return name; } public double getPrice() { return price; } public abstract String getDescription(); } ``` 该抽象类中定义了两个私有成员变量 name 和 price,以及一个构造方法和两个公有的 getter 方法。其中,构造方法用于初始化饮料的名称和价格,getter 方法用于获取饮料的名称和价格。此外,该抽象类还定义了一个抽象方法 getDescription,用于获取饮料的描述信息。由于该方法是抽象的,因此需要在子类中进行具体实现。 您可以在子类中继承该抽象类,并实现 getDescription 方法,以创建具体的饮料类。例如: ```java public class Coffee extends Drink { private String size; public Coffee(String name, double price, String size) { super(name, price); this.size = size; } public String getSize() { return size; } @Override public String getDescription() { return getSize() + " " + getName() + " (" + getPrice() + ")"; } } ``` 在 Coffee 类中,我们继承了 Drink 类,并重写了 getDescription 方法,用于获取咖啡的描述信息。在构造方法中,我们传入了咖啡的名称、价格和尺寸,以初始化这些属性。在 getDescription 方法中,我们将咖啡的尺寸、名称和价格组合成一个字符串,并返回该字符串作为咖啡的描述信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值