Answer:
See explaination
Explanation:
import java.util.Scanner;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class PlantArrayListExample{
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String input;
ArrayList<Plant> myGarden = new ArrayList<Plant>();
String plantName, colorOfFlowers;
boolean isAnnual;
double plantCost;
input = scnr.next();
Plant temp = null;
while(!input.equals("-1")){
plantName = scnr.next();
plantCost = scnr.nextDouble();
if(input.equals("flower")){
isAnnual = scnr.next().equals("true");
colorOfFlowers = scnr.next();
temp = new Flower();
temp.setPlantName(plantName);
temp.setPlantCost(plantCost);
((Flower)temp).setPlantType(isAnnual);
((Flower)temp).setColorOfFlowers(colorOfFlowers);
myGarden.add(temp);
}
else{
temp = new Plant();
temp.setPlantName(plantName);
temp.setPlantCost(plantCost);
myGarden.add(temp);
}
input = scnr.next();
}
printArrayList(myGarden);
}
public static <T extends Plant> void printArrayList(ArrayList<T> myGarden){
for(Plant p:myGarden){
System.out.println(p);
}
}
}