diff --git a/pom.xml b/pom.xml
index 62dbb86..3c9cce4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,6 +5,18 @@
io.zipcoder
polymorphism-1
0.0.1-SNAPSHOT
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 14
+ 14
+
+
+
+
jar
interfaces-1
diff --git a/src/main/java/Cat.java b/src/main/java/Cat.java
new file mode 100644
index 0000000..58b395d
--- /dev/null
+++ b/src/main/java/Cat.java
@@ -0,0 +1,11 @@
+
+public class Cat extends Pet {
+
+ public Cat(String name) {
+ super(name);
+ this.name = name;
+ }
+ public String speak(){
+ return "Meow";
+ }
+}
diff --git a/src/main/java/Chicken.java b/src/main/java/Chicken.java
new file mode 100644
index 0000000..843b092
--- /dev/null
+++ b/src/main/java/Chicken.java
@@ -0,0 +1,10 @@
+public class Chicken extends Pet{
+
+ public Chicken (String name) {
+ super(name);
+ this.name = name;
+ }
+ public String speak() {
+ return "Cuckoo";
+ }
+}
diff --git a/src/main/java/Dog.java b/src/main/java/Dog.java
new file mode 100644
index 0000000..c8f7146
--- /dev/null
+++ b/src/main/java/Dog.java
@@ -0,0 +1,10 @@
+public class Dog extends Pet {
+
+ public Dog(String name) {
+ super(name);
+ this.name = name;
+ }
+ public String speak(){
+ return "Woof";
+ }
+}
diff --git a/src/main/java/Pet.java b/src/main/java/Pet.java
new file mode 100644
index 0000000..676abb3
--- /dev/null
+++ b/src/main/java/Pet.java
@@ -0,0 +1,19 @@
+
+ public abstract class Pet {
+ String name;
+
+ public Pet(String name) {
+ this.name = name;
+
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ abstract public String speak();
+}
diff --git a/src/main/java/io/zipcoder/polymorphism/Console.java b/src/main/java/io/zipcoder/polymorphism/Console.java
new file mode 100644
index 0000000..ca72d07
--- /dev/null
+++ b/src/main/java/io/zipcoder/polymorphism/Console.java
@@ -0,0 +1,25 @@
+package io.zipcoder.polymorphism;
+
+import java.util.Scanner;
+
+public class Console {
+
+ public static void print(String output, Object... args){
+ System.out.printf(output, args);
+ }
+ public static void println(String output, Object... args){
+ print(output + "\n", args);
+ }
+ public static String getStringInput(String prompt){
+ Scanner scanner = new Scanner(System.in);
+ println(prompt);
+ String userInput = scanner.nextLine();
+ return userInput;
+ }
+ public static Integer getIntegerInput(String prompt) {
+ Scanner scanner = new Scanner(System.in);
+ println(prompt);
+ int userInput = Integer.parseInt(scanner.nextLine());
+ return userInput;
+ }
+}
diff --git a/src/main/java/io/zipcoder/polymorphism/MainApplication.java b/src/main/java/io/zipcoder/polymorphism/MainApplication.java
index 668c627..aa95dd7 100644
--- a/src/main/java/io/zipcoder/polymorphism/MainApplication.java
+++ b/src/main/java/io/zipcoder/polymorphism/MainApplication.java
@@ -1,4 +1,26 @@
package io.zipcoder.polymorphism;
+
+import java.security.DigestException;
+
public class MainApplication {
+ public static void main(String[] args) {
+ Integer numPets = Console.getIntegerInput("Hey you! How many pets do you own?");
+ if(numPets > 0) {
+ for(int i = 0; i < numPets; i++){
+ String petType = Console.getStringInput("What kind of pet do you own?\n" + "Dog \n" + "Cat \n" + "Chicken \n");
+
+ String petName = Console.getStringInput("What is the name of your pet? \n");
+
+ System.out.println("Wow I like your pet name! Goodbye!");
+
+
+
+
+ }
+
+ }
+
+ }
+
}
diff --git a/src/test/java/CatTest.java b/src/test/java/CatTest.java
new file mode 100644
index 0000000..b637b6f
--- /dev/null
+++ b/src/test/java/CatTest.java
@@ -0,0 +1,18 @@
+import org.junit.Assert;
+import org.junit.Test;
+
+public class CatTest {
+
+ @Test
+ public void speakTest(){
+ // Given:
+ Pet cat = new Cat("Garfield");
+ String expected = "Meow";
+
+ // When:
+ String actual = cat.speak();
+
+ // Then:
+ Assert.assertEquals(expected,actual);
+ }
+}
diff --git a/src/test/java/ChickenTest.java b/src/test/java/ChickenTest.java
new file mode 100644
index 0000000..e5d4af7
--- /dev/null
+++ b/src/test/java/ChickenTest.java
@@ -0,0 +1,17 @@
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ChickenTest {
+ @Test
+ public void speakTest(){
+ // Given:
+ Pet chicken = new Chicken("Protein");
+ String expected = "Cuckoo";
+
+ // When:
+ String actual = chicken.speak();
+
+ // Then:
+ Assert.assertEquals(expected,actual);
+ }
+}
diff --git a/src/test/java/DogTest.java b/src/test/java/DogTest.java
new file mode 100644
index 0000000..81d3bf2
--- /dev/null
+++ b/src/test/java/DogTest.java
@@ -0,0 +1,19 @@
+import org.junit.Assert;
+import org.junit.Test;
+
+public class DogTest {
+ @Test
+ public void speakTest(){
+ // Given:
+ Dog dog = new Dog("Clifford");
+ String expected = "Woof";
+
+ // When:
+ String actual = dog.speak();
+
+ // Then:
+ Assert.assertEquals(expected,actual);
+ }
+
+
+}
diff --git a/src/test/java/PetTest.java b/src/test/java/PetTest.java
new file mode 100644
index 0000000..2276708
--- /dev/null
+++ b/src/test/java/PetTest.java
@@ -0,0 +1,4 @@
+
+
+public class PetTest {
+}