(1)建立一个Java抽象类Drink,应当: ①声明一个抽象方法taste(),该方法负责输出饮料的味道; ②声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶),如: ③声明静态方法getDrink(int drinkType),根据传入的参数创建不同的饮料对象,并返回该对象,建议使用switch语句。 (2)建立Drink的子类: ①分别建立Drink的子类:Coffee(咖啡类),Beer(啤酒类),Milk(牛奶类); ②实现taste()方法,要求在控制台打印各自的味道特征。 (3)建立Test测试类,测试以上内容的正确性 ①编写main方法,输入要新建的饮料类型。 ②调用Drink类的getDrink方法,获得相应的饮料对象。然后调用该饮料对象的taste()方法,输出该饮料的味道。测试类放在包名为com.sy4.exe02.test包中,其它类放在com.sy4.exa02包中
时间: 2024-02-09 18:12:35 浏览: 131
好的,下面是根据您的要求创建的代码:
Drink.java
```
package com.sy4.exa02;
public abstract class 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) {
switch (drinkType) {
case COFFEE:
return new Coffee();
case BEER:
return new Beer();
case MILK:
return new Milk();
default:
return null;
}
}
}
```
Coffee.java
```
package com.sy4.exa02;
public class Coffee extends Drink {
@Override
public void taste() {
System.out.println("这是一杯咖啡,它有苦涩的味道。");
}
}
```
Beer.java
```
package com.sy4.exa02;
public class Beer extends Drink {
@Override
public void taste() {
System.out.println("这是一杯啤酒,它有苦涩、微甜的味道。");
}
}
```
Milk.java
```
package com.sy4.exa02;
public class Milk extends Drink {
@Override
public void taste() {
System.out.println("这是一杯牛奶,它有清甜的味道。");
}
}
```
Test.java
```
package com.sy4.exe02.test;
import com.sy4.exa02.Drink;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请选择要喝的饮料类型:1.咖啡 2.啤酒 3.牛奶");
int drinkType = scanner.nextInt();
Drink drink = Drink.getDrink(drinkType);
if (drink != null) {
drink.taste();
} else {
System.out.println("请选择正确的饮料类型!");
}
}
}
```
这个代码可以实现根据用户输入的饮料类型创建相应的饮料对象,并调用该饮料对象的taste方法输出该饮料的味道特征。
阅读全文