(1)
//器皿
public interface Take {
public String take();
}
public class Dish implements Take{
@Override
public String take() {
return "盘子";
}
}
public class Bowl implements Take{
@Override
public String take() {
return "碗";
}
}
public class Cup implements Take{
@Override
public String take() {
return "杯子";
}
}
//食物
public interface Food {
public String name();
public Take take();
public int time();
}
public abstract class SmallFood implements Food{
@Override
public Take take() {
return new Bowl();
}
@Override
public abstract int time();
}
public abstract class BigFood implements Food {
@Override
public Take take() {
return new Dish();
}
@Override
public abstract int time();
}
public abstract class Drink implements Food{
@Override
public Take take() {
return new Cup();
}
@Override
public abstract int time();
}
//具体
public class Fish extends BigFood{
@Override
public String name() {
return "fish";
}
@Override
public int time() {
return 2;
}
}
public class Milk extends Drink{
@Override
public String name() {
return "milk";
}
@Override
public int time() {
return 1;
}
}
public class Rice extends SmallFood{
@Override
public String name() {
return "rice";
}
public int time() {
return 3;
}
}
//计算
import java.util.ArrayList;
import java.util.List;
public class ALLTime {
private List<Food> list=new ArrayList<Food>();
public void add(Food food){
list.add(food);
}
public int allTime(){
int time=0;
for (Food food : list) {
time+=food.time();
}
return time;
}
public String showFood(){
String s="";
for (Food food : list) {
s=s+"菜名:"+food.name()+";器皿:"+food.take().take()+";时间:"+food.time()+"\n";
}
return s;
}
}
//一桌晚饭
public class Dinner {
public ALLTime dinner(){
ALLTime t=new ALLTime();
t.add(new Fish());
t.add(new Milk());
t.add(new Rice());
return t;
}
}
//检验
public class main {
public static void main(String[] args){
Dinner d=new Dinner();
ALLTime a=d.dinner();
System.out.println(a.showFood()+"总时间"+a.allTime());
}
}