In: Computer Science
Write in Java
The Vegetable class should have the usual constructors (default and parameterized), get (accessor) and set (mutator) methods for each attribute, and a toString method
Child classes should call parent methods whenever possible to minimize code duplication.
The driver program must test all the methods in the Vegetable class, and show that the new methods added to the Plant class can be called by each of the child classes. Include comments in your output to describe what you are testing, for example System.out.println(“testing Plant toString, accessor and mutator”);. Print out some blank lines in the output to make it easier to read and understand what is being output.
public class Plant {
private String name;
private String lifespan;
public Plant(){
name = "no name";
lifespan = "do not know";
}
public Plant(String newName, String newlife)
{
name = newName;
lifespan = newlife;
}
public String getName()
{
return name;
}
public String getlife()
{
return lifespan;
}
public void setName(String newName)
{
name = newName;
}
public void setLifeSpan(String newlife)
{
lifespan = newlife;
}
public void set(String newName, String newlife)
{
name = newName;
lifespan = newlife;
}
public String toString()
{
return "Name:"+name+"\nLifeSpan:"+lifespan;
}
}
/*******************************Plant.java************************/
import java.util.ArrayList;
/**
* The Class Plant.
*/
public abstract class Plant {
/** The name. */
private String name;
/** The lifespan. */
private String lifespan;
/**
* Instantiates a new plant.
*/
public Plant() {
name = "no name";
lifespan = "do not know";
}
/**
* Instantiates a new plant.
*
* @param newName the new name
* @param newlife the newlife
*/
public Plant(String newName, String newlife) {
name = newName;
lifespan = newlife;
}
/**
* Gets the name.
*
* @return the name
*/
public String getName() {
return name;
}
/**
* Gets the life.
*
* @return the life
*/
public String getlife() {
return lifespan;
}
/**
* Sets the name.
*
* @param newName the new name
*/
public void setName(String newName) {
name = newName;
}
/**
* Sets the life span.
*
* @param newlife the new life span
*/
public void setLifeSpan(String newlife) {
lifespan = newlife;
}
/**
* Sets the.
*
* @param newName the new name
* @param newlife the newlife
*/
public void set(String newName, String newlife)
{
name = newName;
lifespan = newlife;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
public String toString() {
return "Name:" + name +
"\nLifeSpan:" + lifespan;
}
/**
* Gets the botanical name.
*
* @return the botanical name
*/
public abstract String getBotanicalName();
/**
* Usage.
*
* @return the array list
*/
public abstract ArrayList<String> usage();
}
/*********************************Vegetable.java*******************************/
import java.util.ArrayList;
/**
* The Class Vegetable.
*/
public class Vegetable extends Plant {
/** The flavor. */
private String flavor;
/** The origin. */
private String origin;
/** The dishes. */
private ArrayList<String> dishes;
/** The botnical name. */
private String botnicalName;
/** The uses. */
private ArrayList<String> uses;
/**
* Instantiates a new vegetable.
*
* @param newName the new name
* @param newlife the newlife
*/
public Vegetable(String newName, String newlife)
{
super(newName, newlife);
this.flavor = "N/A";
}
/**
* Instantiates a new vegetable.
*
* @param newName the new name
* @param newlife the newlife
* @param flavor the flavor
*/
public Vegetable(String newName, String newlife,
String flavor) {
super(newName, newlife);
this.flavor = flavor;
}
/**
* Gets the flavor.
*
* @return the flavor
*/
public String getFlavor() {
return flavor;
}
/**
* Sets the flavor.
*
* @param flavor the new flavor
*/
public void setFlavor(String flavor) {
this.flavor = flavor;
}
/**
* Gets the origin.
*
* @return the origin
*/
public String getOrigin() {
return origin;
}
/**
* Gets the dishes.
*
* @return the dishes
*/
public ArrayList<String> getDishes() {
return dishes;
}
/**
* Sets the dishes.
*
* @param dishes the new dishes
*/
public void setDishes(ArrayList<String> dishes)
{
this.dishes = dishes;
}
/**
* Sets the origin.
*
* @param origin the new origin
*/
public void setOrigin(String origin) {
this.origin = origin;
}
/**
* Gets the botnical name.
*
* @return the botnical name
*/
public String getBotnicalName() {
return botnicalName;
}
/**
* Sets the botnical name.
*
* @param botnicalName the new botnical name
*/
public void setBotnicalName(String botnicalName)
{
this.botnicalName =
botnicalName;
}
/**
* Gets the uses.
*
* @return the uses
*/
public ArrayList<String> getUses() {
return uses;
}
/**
* Sets the uses.
*
* @param uses the new uses
*/
public void setUses(ArrayList<String> uses)
{
this.uses = uses;
}
/* (non-Javadoc)
* @see Plant#getBotanicalName()
*/
@Override
public String getBotanicalName() {
return botnicalName;
}
/* (non-Javadoc)
* @see Plant#usage()
*/
@Override
public ArrayList<String> usage() {
return uses;
}
/* (non-Javadoc)
* @see Plant#toString()
*/
@Override
public String toString() {
return super.toString() +
"\nBotnicalName: " + botnicalName + "\nOrigin: " + origin +
"\nDishes: " + dishes
+ "\nUses: " + uses;
}
}
/***************************TestPlant.java******************/
import java.util.ArrayList;
/**
* The Class TestPlant.
*/
public class TestPlant {
/**
* The main method.
*
* @param args the arguments
*/
public static void main(String[] args) {
Plant plant = new
Vegetable("Mango", "300 Years");
((Vegetable)
plant).setOrigin("southern Asia");
((Vegetable)
plant).setFlavor("Sweet");
ArrayList<String> dishes =
new ArrayList<>();
dishes.add("Raw Mango
Rasam");
dishes.add("Corn and Raw Mango
Salad");
dishes.add("Chilled Mango
Cheesecake");
dishes.add("Mango and Mint
Kheer");
dishes.add("Eggless Mango
Mousse");
((Vegetable)
plant).setDishes(dishes);
((Vegetable)
plant).setBotnicalName("Mangifera indica");
ArrayList<String> uses = new
ArrayList<>();
uses.add("Food");
uses.add("House");
uses.add("Wood");
((Vegetable)
plant).setUses(uses);
System.out.println(plant.toString());
}
}
/*****************output************************/
Name:Mango
LifeSpan:300 Years
BotnicalName: Mangifera indica
Origin: southern Asia
Dishes: [Raw Mango Rasam, Corn and Raw Mango Salad, Chilled Mango
Cheesecake, Mango and Mint Kheer, Eggless Mango Mousse]
Uses: [Food, House, Wood]
Please let me know if you have any doubt or modify the answer, Thanks:)