1.继承多态综合练习1 (1)建立一个Java抽象类Drink,应当: ①声明一个抽象方法taste(),该方法负责输出饮料的味道; ②声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶),如: ③声明静态方法getDrink(int drinkType),根据传入的参数创建不同的饮料对象,并返回该对象,建议使用switch语句。 (2)建立Drink的子类: ①分别建立Drink的子类:Coffee(咖啡类),Beer(啤酒类),Milk(牛奶类); ②实现taste()方法,要求在控制台打印各自的味道特征。 (3)建立测试类,测试以上内容的正确性 ①编写main方法,输入要新建的饮料类型。 ②调用Drink类的getDrink方法,获得相应的饮料对象。然后调用该饮料对象的taste()方法,输出该饮料的味道。 ②编译程序,并运行。 要求:测试类放在包名为com.sy4.exe02.test包中,其它类放在com.sy4.exa02包中。 (知识点:类的定义,抽象类,继承,多态)
时间: 2024-02-21 17:00:12 浏览: 142
Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析.md
5星 · 资源好评率100%
以下是题目要求的代码实现:
Drink.java 抽象类
```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 咖啡类
```java
package com.sy4.exa02;
public class Coffee extends Drink {
@Override
public void taste() {
System.out.println("这是一杯咖啡,它有苦涩的味道。");
}
}
```
Beer.java 啤酒类
```java
package com.sy4.exa02;
public class Beer extends Drink {
@Override
public void taste() {
System.out.println("这是一杯啤酒,它有醇厚的味道。");
}
}
```
Milk.java 牛奶类
```java
package com.sy4.exa02;
public class Milk extends Drink {
@Override
public void taste() {
System.out.println("这是一杯牛奶,它有清甜的味道。");
}
}
```
Test.java 测试类
```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("没有此种饮料类型!");
}
}
}
```
运行结果:
```
请输入要选择的饮料类型(1:咖啡,2:啤酒,3:牛奶):
1
这是一杯咖啡,它有苦涩的味道。
```
阅读全文