title: Generic ArrayList and a menu which adds items automatically to Array
body: <p>I must create list of pets that includes cats and dogs and I must use inheritance for this. Pet class wil include name variable, Dog class will include name and weight variables and Cat class will include name and coatColor variables.</p>
  
  <p>And I must create a Test class which includes that menu below.</p>
  
  <ol>
  <li>Add dog</li>
  <li>Add cat</li>
  <li>Remove dog</li>
  <li>Remove cat</li>
  <li>List dogs</li>
  <li>List cats</li>
  <li>List all pets</li>
  <li>Show min, max and average weight of dogs</li>
  <li>Quit</li>
  </ol>
  
  <p>I've written every class but I couldn't complete them I need your help.</p>
  
  <p>My classes are below. (If I did something wrong please edit it and tell me, I think I did something wrong)</p>
  
  <p>Pet Class:</p>
  
  <pre><code>public class Pet{
      private static String name;
  
      protected String getName(){
          return name;
      }
  
      protected void setName(String newName){
          name = newName;
      }
  
      public Pet(String petName) {
          name = petName;
      }
  }
  </code></pre>
  
  <p>Dog Class:</p>
  
  <pre><code>public class Dog extends Pet{       
      private Double weight;      
      protected double getWeight(){
          return weight;
      }
  
      protected void setWeight(double newWeight){
          weight = newWeight;
      }
  
      public Dog(double dogWeight, String petName){
          super(petName);
          weight = dogWeight;
  
      }
  }
  </code></pre>
  
  <p>Cat Class:</p>
  
  <pre><code>public class Cat extends Pet{       
      private String coatColor;       
      protected String getWeight(){
          return coatColor;
      }
  
      protected void setColor(String newColor){
          coatColor = newColor;
      }
  
      public Cat(String petName, String coatColor){
          super(petName);
          this.coatColor = coatColor;
      }
  }
  </code></pre>
  
  <p>PetTest Class:</p>
  
  <pre><code>import java.util.*;
  
  public class PetTest
  {
      //i made it static to make all method to be able to see it.
      static ArrayList&lt;Pet&gt; mainList = new ArrayList&lt;Pet&gt;();
      static Iterator&lt;Pet&gt; mainIter = mainList.iterator();
      static Scanner keyboard = new Scanner(System.in);
  
      static Pet cat2342 = new Cat("mirnav", "beyaz");
      public static void listDogs()
      {
          while(mainIter.hasNext())
          {
              for(Pet dog: mainList)
              {
                  System.out.println(dog);
              }//end of for loop
  
          }//end of while loop
      }//end of listDogs method
  
      public static void listCats()
      {
          while(mainIter.hasNext())
          {
              for(Pet cat: mainList)
              {
                  System.out.println(cat);
              }//end of for loop
  
          }//end of while loop
      }//end of listCats method
  
      public static void addDog(String dogName,Double dogWeight)
      {
          Pet dog = new Dog(dogName, dogWeight);
          mainList.add(dog);
      }//end of addDog method
  
      public static void addCat(String catName, String furColor)
      {
          Pet cat = new Cat(catName, furColor);
          mainList.add(cat);
      }//end of addCat method
  
      public static void removeDog(String dogName)
      {
          while (mainIter.hasNext())
          {
              for(Pet pet : mainList)
              {
                  if(pet.getName().equals(dogName))
                  {
                      mainIter.remove();
                  }//end of if statement
              }//end of for loop
  
  
          }//end of while loop
  
      }//end of removeDog method
  
  
      public static void removeCat(String catName)
      {
          while (mainIter.hasNext())
          {
              for(Pet pet : mainList)
              {
                  if(pet.getName().equals(catName))
                  {
                      mainIter.remove();
                  }//end of if statement
              }//end of for loop
  
  
          }//end of while loop
  
      }//end of removeCat method
  
  
      public static void main(String[] args)
      {
  
          System.out.println("1. Add dog ");
          System.out.println("2. Add cat");
          System.out.println("3. Remove dog");
          System.out.println("4. Remove cat");
          System.out.println("5. List dogs");
          System.out.println("6. List cats");
          System.out.println("7. List all pets");
          System.out.println("8. Show min, max and average weight of dogs");
          System.out.println("0. Quit");
          int action = keyboard.nextInt();
  
  
          Scanner parameter1 = new Scanner(System.in);
          Scanner parameter2 = new Scanner(System.in);
  
          while(action != 0)
          {
          switch(action)
          {
          case 1: 
              System.out.println("Type in the name of the dog that you want to add.");
              String dogName = parameter1.next();
              System.out.println("Type in the weight of the dog that you want to add.");
              Double dogWeight = parameter2.nextDouble();
              addDog(dogName,dogWeight);
              showMenu();
  
  
          case 2:
              System.out.println("Type in the name of the cat that you want to add.");
              String catName = parameter1.next();
              System.out.println("Type in the color of the cat that you want to add.");
              String furColor = parameter2.next();
              addCat(catName,furColor);
  
  
  
          case 3:
              System.out.println("Type in the name of dog that you want to remove.");
              String dogToRemove = parameter1.next();
              removeDog(dogToRemove);
  
  
  
          case 4:
              System.out.println("Type in the name of dog that you want to remove.");
              String catToRemove = parameter1.next();
              removeDog(catToRemove);
  
  
  
          case 5:
              listDogs();
  
          case 6:
              listCats();
  
  
  
  
          }//end of switch statement
  
          }//end of while loop
  
      }//end of main method
  
  
  
  }//end of the class
  </code></pre>