Java 代码示例:抽象类和子类实现饮料类型获取
这段代码定义了一个抽象类 Drink 和三个具体的子类 Coffee、Beer、Milk。Drink 类中定义了一个抽象方法 taste(),表示品尝饮料的操作。同时,Drink 类中还定义了三个常量 COFFEE、BEER、MILK,分别表示咖啡、啤酒和牛奶的类型。
另外,这段代码还定义了一个静态方法 getDrink(int drinkType),用于根据传入的饮料类型参数获取相应的饮料对象。如果传入的饮料类型不是 COFFEE、BEER 或 MILK 中的一个,就会抛出一个自定义的异常 DrinkNotFoundException。这个方法返回的是 Drink 类型的对象,具体是哪个子类对象取决于传入的饮料类型参数。
以下是代码示例的详细解释:
public static final int COFFEE = 1;
public static final int BEER = 2;
public static final int MILK = 3;
public abstract void taste();
public static Drink getDrink(int drinkType) throws DrinkNotFoundException {
switch (drinkType) {
case COFFEE:
return new Coffee('星巴克');
case BEER:
return new Beer('黄色');
case MILK:
return new Milk('新鲜');
default:
throw new DrinkNotFoundException("没有相应的饮料类型");
}
}
代码解析:
-
public static final int COFFEE = 1;、public static final int BEER = 2;、public static final int MILK = 3;:这三行代码定义了三个常量,分别代表咖啡、啤酒和牛奶的类型,并用数字 1、2、3 来标识。 -
public abstract void taste();:这行代码定义了一个抽象方法taste(),表示品尝饮料的操作。由于抽象类不能被实例化,所以这个方法没有具体实现,需要由具体的子类来实现。 -
public static Drink getDrink(int drinkType) throws DrinkNotFoundException { ... }:这行代码定义了一个静态方法getDrink(),它接收一个整数参数drinkType,用来表示饮料类型。方法体内使用switch语句来判断传入的饮料类型,并返回相应的饮料对象。如果传入的饮料类型不合法,则抛出DrinkNotFoundException异常。
总结:
这段代码演示了 Java 中抽象类和子类之间的关系,以及使用 switch 语句和异常处理机制来实现饮料类型的获取。
原文地址: https://www.cveoy.top/t/topic/kCsj 著作权归作者所有。请勿转载和采集!