//Drink抽象类
abstract class Drink{
Drink(){}
//抽象方法
abstract void taste();
public static final int coffee=1,beer=2,milk=3;
//getDrink方法,获取饮料类型
static void getDrink(int drinkType){
//异常
try{
//创建不同饮料的对象
switch(drinkType){
case coffee:Coffee objCoffee=new Coffee();objCoffee.taste();break;
case beer:Beer objBeer=new Beer();objBeer.taste();break;
case milk:Milk objMilk=new Milk();objMilk.taste();break;
default:throw new DrinkNotFoundException();
}
}catch(DrinkNotFoundException e){
System.err.println(e+":对不起,没有您输入的饮料类型");
}
}
}
//Coffee,Beer,Milk三个Drink的子类,重写Drink的taste抽象方法
class Coffee extends Drink{
Coffee(){}
void taste(){
System.out.println("咖啡:苦");
}
}
class Beer extends Drink{
Beer(){}
void taste(){
System.out.println("啤酒:爽");
}
}
class Milk extends Drink{
Milk(){}
void taste(){
System.out.println("牛奶:香");
}
}
//自定义异常DrinkNotFoundException
class DrinkNotFoundException extends Exception{
DrinkNotFoundException(){}
}
//测试类
public class Taste{
Taste(){}
//main方法
public static void main(String [] args){
//异常
try{
int i;
//判断是否是数字
for(i=0;i<args[0].length();i++){
if(args[0].charAt(i)<'0' || args[0].charAt(i)>'9'){
throw new DrinkNotFoundException();
}
}
int drink=Integer.parseInt(args[0]);
Drink.getDrink(drink);
}catch(DrinkNotFoundException e){
System.err.println(e+":对不起,没有您输入的饮料类");
}
}
}
上面这段代码是没有问题的
我想把getDrink()方法改成可返回对象的static Object getDrink(int drinkType)
然后当case符合条件就反回相应的对象
再在main方法中用对象使用相应的taste()方法
请大家帮帮我最好加我QQ:***********
參考答案:同意