diff --git a/pom.xml b/pom.xml index 93036ba..90c23e3 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,14 @@ io.zipcoder polymorphism 1.0-SNAPSHOT + + + junit + junit + 4.12 + test + + \ No newline at end of file diff --git a/src/main/java/io/zipcoder/polymorphism/Cat.java b/src/main/java/io/zipcoder/polymorphism/Cat.java new file mode 100644 index 0000000..e8a9906 --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Cat.java @@ -0,0 +1,13 @@ +package io.zipcoder.polymorphism; + +public class Cat extends Pet { + + public Cat(String name){ + super(name); + } + + public String speak(){ + return "meow"; + } + +} diff --git a/src/main/java/io/zipcoder/polymorphism/Dog.java b/src/main/java/io/zipcoder/polymorphism/Dog.java new file mode 100644 index 0000000..52d1a5c --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Dog.java @@ -0,0 +1,13 @@ +package io.zipcoder.polymorphism; + +public class Dog extends Pet { + + public Dog(String name){ + super(name); + } + + public String speak(){ + return "bark"; + } + +} diff --git a/src/main/java/io/zipcoder/polymorphism/Fish.java b/src/main/java/io/zipcoder/polymorphism/Fish.java new file mode 100644 index 0000000..94674db --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Fish.java @@ -0,0 +1,12 @@ +package io.zipcoder.polymorphism; + +public class Fish extends Pet { + + public Fish(String name){ + super(name); + } + + public String speak(){ + return "glub"; + } +} diff --git a/src/main/java/io/zipcoder/polymorphism/GuineaPig.java b/src/main/java/io/zipcoder/polymorphism/GuineaPig.java new file mode 100644 index 0000000..42da556 --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/GuineaPig.java @@ -0,0 +1,13 @@ +package io.zipcoder.polymorphism; + +public class GuineaPig extends Pet { + + public GuineaPig(String name){ + super(name); + } + + public String speak(){ + return "wheek"; + } + +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/polymorphism/MainApplication.java b/src/main/java/io/zipcoder/polymorphism/MainApplication.java index ea9281e..4ba9a37 100644 --- a/src/main/java/io/zipcoder/polymorphism/MainApplication.java +++ b/src/main/java/io/zipcoder/polymorphism/MainApplication.java @@ -1,7 +1,58 @@ package io.zipcoder.polymorphism; +import java.util.ArrayList; +import java.util.Scanner; + /** * Created by leon on 11/6/17. */ public class MainApplication { + +private static ArrayList pets; + + public static void main(String[] args) { + Integer numOfPets = getInteger("How many pets do you have?"); + ArrayList pet = new ArrayList(); + pets = pet; + + + for(int i = 0; i < numOfPets; i++) { + String species = getStringInput("What kind of pet?"); + String name = getStringInput("What is their name?"); + if(species.equals("cat")) { + pets.add(new Cat(name)); + } + else if(species.equals("dog")) { + pets.add(new Dog(name)); + } + else if(species.equals("guineapig")){ + pets.add(new GuineaPig(name)); + } + else{ + pets.add(new Fish(name)); + } + } + + + printPets(); + + } + public static String getStringInput(String prompt){ + Scanner scanner = new Scanner(System.in); + System.out.println(prompt); + String userInput = scanner.nextLine(); + return userInput; + } + + public static Integer getInteger(String prompt) { + Scanner scanner = new Scanner(System.in); + System.out.println(prompt); + String userInput = scanner.nextLine(); + return Integer.parseInt(userInput); + } + public static void printPets(){ + for(Pet p : pets) { + System.out.println(p.getName()+ " "+ p.speak()); + } + } } diff --git a/src/main/java/io/zipcoder/polymorphism/Pet.java b/src/main/java/io/zipcoder/polymorphism/Pet.java new file mode 100644 index 0000000..4e738b1 --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Pet.java @@ -0,0 +1,25 @@ +package io.zipcoder.polymorphism; + +public abstract class Pet { + + private String name; + + + public Pet(String name){ + this.name = name; + } + + public void setName(String name) { + this.name = name; + } + + + public String getName(){ + return name; + } + + public abstract String speak(); + +} + + diff --git a/src/test/java/io/zipcoder/polymorphism/CatTest.java b/src/test/java/io/zipcoder/polymorphism/CatTest.java new file mode 100644 index 0000000..09c0357 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/CatTest.java @@ -0,0 +1,24 @@ +package io.zipcoder.polymorphism; + +import org.junit.Test; +import org.junit.Assert; + +public class CatTest +{ + @Test + public void CatTest() + { + Cat name = new Cat("fluffy"); + String actual = name.getName(); + String expected = "fluffy"; + Assert.assertEquals(expected, actual); + } + + @Test + public void SpeechTest() + { + String actual = new Cat("fluffy").speak(); + String expected = "meow"; + Assert.assertEquals(expected, actual); + } +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/polymorphism/DogTest.java b/src/test/java/io/zipcoder/polymorphism/DogTest.java new file mode 100644 index 0000000..98e2514 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/DogTest.java @@ -0,0 +1,24 @@ +package io.zipcoder.polymorphism; + + import org.junit.Test; + import org.junit.Assert; + +public class DogTest +{ + @Test + public void DogTest() + { + Dog name = new Dog("clifford"); + String actual = name.getName(); + String expected = "clifford"; + Assert.assertEquals(expected, actual); + } + + @Test + public void SpeechTest() + { + String actual = new Dog("cliffors").speak(); + String expected = "bark"; + Assert.assertEquals(expected, actual); + } +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/polymorphism/FishTest.java b/src/test/java/io/zipcoder/polymorphism/FishTest.java new file mode 100644 index 0000000..b6ad4c3 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/FishTest.java @@ -0,0 +1,24 @@ +package io.zipcoder.polymorphism; + +import org.junit.Test; +import org.junit.Assert; + +public class FishTest +{ + @Test + public void FishTest() + { + Fish name = new Fish("nemo"); + String actual = name.getName(); + String expected = "nemo"; + Assert.assertEquals(expected, actual); + } + + @Test + public void SpeechTest() + { + String actual = new Fish("nemo").speak(); + String expected = "glub"; + Assert.assertEquals(expected, actual); + } +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/polymorphism/GuineaPigTest.java b/src/test/java/io/zipcoder/polymorphism/GuineaPigTest.java new file mode 100644 index 0000000..7c9be88 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/GuineaPigTest.java @@ -0,0 +1,24 @@ +package io.zipcoder.polymorphism; + +import org.junit.Test; +import org.junit.Assert; + +public class GuineaPigTest +{ + @Test + public void GuineaPigTest() + { + GuineaPig name = new GuineaPig("whiskers"); + String actual = name.getName(); + String expected = "whiskers"; + Assert.assertEquals(expected, actual); + } + + @Test + public void SpeechTest() + { + String actual = new GuineaPig("whiskers").speak(); + String expected = "wheek"; + Assert.assertEquals(expected, actual); + } +}