206k views
0 votes
Given a base Plant class and a derived Flower class, complete main() to create an ArrayList called myGarden. The ArrayList should be able to store objects that belong to the Plant class or the Flower class. Create a method called printArrayList(), that uses the printInfo() methods defined in the respective classes and prints each element in myGarden. The program should read plants or flowers from input (ending with -1), adding each Plant or Flower to the myGarden ArrayList, and output each element in myGarden using the printInfo() method.

User NIGO
by
8.1k points

2 Answers

7 votes

Final answer:

The question involves creating an ArrayList in Java to hold Plant and Flower objects, utilizing polymorphism to store and process them. A printArrayList() method is employed to iterate through the ArrayList and call the printInfo() method on each Plant and Flower object.

Step-by-step explanation:

The question revolves around object-oriented programming in Java, specifically dealing with the concept of polymorphism and ArrayLists. To accomplish the task, you will need to create an ArrayList that can hold objects of the Plant class as well as objects of the derived Flower class. This is possible because of polymorphism, where a Flower 'is-a' Plant, and thus can be treated as one.

To provide you with a starting point, here's an example of a possible printArrayList() method:

void printArrayList(ArrayList myGarden) {
for (Plant p : myGarden) {
p.printInfo();
}
}

The actual main() is not provided here but would involve initializing the ArrayList, looping to read inputs, creating Plant or Flower objects based on the input, adding them to the myGarden ArrayList, and then calling the printArrayList() method to display the information for each plant or flower in the garden. Notice that the printInfo() method is called for each element; this method is expected to be defined in both the Plant and Flower classes, leveraging polymorphism for dynamic method dispatch.

User Pratheesh M
by
7.9k points
6 votes

Final answer:

The question involves creating an ArrayList that stores objects of type Plant and Flower, reading these objects from input, and printing their information using a defined method in Java.

Step-by-step explanation:

The student's question pertains to object-oriented programming in Java and involves working with classes, inheritance, and polymorphism within an ArrayList. To solve this, you'll need to create an ArrayList that can store objects of both the Plant and Flower classes. The Plant class is the base class, while the Flower class is the derived class. You will then implement a printArrayList() method to iterate through the myGarden ArrayList and call the printInfo() method on each object.

Since both Plant and Flower objects can be added to myGarden, the printInfo() method needs to be defined in both the Plant and Flower classes, possibly overriding the method in Flower if it requires different behavior. The process of reading input and adding plants or flowers would continue until encountering a '-1', which signifies the end of input. After populating the ArrayList, the printArrayList() method will be called to display the information about each plant or flower in the garden.

User Dims
by
8.2k points