申論 3關於以下Java程式:01import java.io.*;02import java.util.ArrayList;03abstract class Fruit {04public Fruit(int sweetness) {this.sweetness = sweetness; }05public abstract String eat();06protected String taste() {07if (sweetness>0 && sweetness<5) return "no";08else if (sweetness<=10) return "little";09else if (sweetness<=15) return "some";10else if (sweetness<=20) return "more";11else return "super";12}13private int sweetness;14}15class Apple extends Fruit {16public Apple(String c, int s) { super(s);this.color = c; }17public String eat(){ return color +":"+taste()+" sweetness "; }18private String color;19}20class Watermelon extends Fruit {21public Watermelon(String v, int s) { super(s);this.volume = v; }22public String eat(){ return volume +":"+taste()+" sweetness "; }23private String volume;24}25public class Test {26public static void test01() {27ArrayList<Fruit> fs = new ArrayList<Fruit>();28fs.add(new Apple("red", 18));29fs.add(new Watermelon("big", 20));30fs.add(new Apple("green", 10));31fs.forEach((n) -> System.out.println(n.eat()));32}33public static void main(String[] args) throws InterruptedException {34test01();35}36}㈠請說明程式執行後其輸出與其運作程式碼行數順序。(12分)㈡請依下面表格,說明Fruit的設計功用,包含Fruit類別類型與功用以及方法(method)。(13分)Fruit類別類型與功用Fruit方法功用eat功用taste功用說明