diff --git a/.idea/modules.xml b/.idea/modules.xml
index ef8a6f4..4d701ff 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -3,6 +3,7 @@
+
diff --git a/src/inheritance/inheritance.iml b/src/inheritance/inheritance.iml
new file mode 100644
index 0000000..9092d60
--- /dev/null
+++ b/src/inheritance/inheritance.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/inheritance/src/CookSpongebob.java b/src/inheritance/src/CookSpongebob.java
new file mode 100644
index 0000000..d79dd77
--- /dev/null
+++ b/src/inheritance/src/CookSpongebob.java
@@ -0,0 +1,15 @@
+public class CookSpongebob extends Spongebob{
+
+ private int age;
+ private String favoriteFood;
+
+ public CookSpongebob(int age, String favoriteFood) {
+ super("Cook Spongebob",age,favoriteFood);
+ super.playBasketBall();
+ }
+
+ @Override
+ public void playBasketBall() {
+ System.out.println("Why would I play basketball, Cooking is better");
+ }
+}
diff --git a/src/inheritance/src/Fish.java b/src/inheritance/src/Fish.java
new file mode 100644
index 0000000..3ce85af
--- /dev/null
+++ b/src/inheritance/src/Fish.java
@@ -0,0 +1,48 @@
+public abstract class Fish {
+
+ private String name;
+ private int age;
+ private String favoriteFood;
+
+ public Fish (String name, int age, String favoriteFood) {
+ this.name = name;
+ this.age = age;
+ this.favoriteFood = favoriteFood;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public String getFavoriteFood() {
+ return favoriteFood;
+ }
+
+ public void setFavoriteFood(String favoriteFood) {
+ this.favoriteFood = favoriteFood;
+ }
+
+ public void takeTheCar() {
+ System.out.println("Taking car");
+ }
+ public void takeTheTrain() {
+ System.out.println("Taking train");
+ }
+ public void walkByFoot() {
+ System.out.println("Walking by foot");
+ }
+
+ public abstract void goToWork();
+}
diff --git a/src/inheritance/src/Main.java b/src/inheritance/src/Main.java
new file mode 100644
index 0000000..930198c
--- /dev/null
+++ b/src/inheritance/src/Main.java
@@ -0,0 +1,15 @@
+//TIP To Run code, press or
+// click the icon in the gutter.
+public class Main {
+ public static void main(String[] args) {
+ //TIP Press with your caret at the highlighted text
+ // to see how IntelliJ IDEA suggests fixing it.
+ System.out.printf("Hello and welcome!");
+
+ for (int i = 1; i <= 5; i++) {
+ //TIP Press to start debugging your code. We have set one breakpoint
+ // for you, but you can always add more by pressing .
+ System.out.println("i = " + i);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/inheritance/src/MrCrab.java b/src/inheritance/src/MrCrab.java
new file mode 100644
index 0000000..6a326ac
--- /dev/null
+++ b/src/inheritance/src/MrCrab.java
@@ -0,0 +1,11 @@
+public class MrCrab extends Fish{
+
+ public MrCrab(String name, int age, String favoriteFood) {
+ super("Mr Crab",age,favoriteFood);
+ }
+
+ @Override
+ public void goToWork(){
+ takeTheTrain();
+ }
+}
diff --git a/src/inheritance/src/Patrick.java b/src/inheritance/src/Patrick.java
new file mode 100644
index 0000000..891c915
--- /dev/null
+++ b/src/inheritance/src/Patrick.java
@@ -0,0 +1,17 @@
+public class Patrick extends Fish implements ProfessionalBasketBallPlayer{
+
+ public Patrick(String name, int age, String favoriteFood) {
+ super("Patrick",age,favoriteFood);
+ }
+
+ @Override
+ public void goToWork() {
+ walkByFoot();
+ }
+
+ @Override
+ public void playBasketBall() {
+ System.out.println("Ohh an orange ball lets eat it");
+ }
+
+}
diff --git a/src/inheritance/src/ProfessionalBasketBallPlayer.java b/src/inheritance/src/ProfessionalBasketBallPlayer.java
new file mode 100644
index 0000000..6fbafd1
--- /dev/null
+++ b/src/inheritance/src/ProfessionalBasketBallPlayer.java
@@ -0,0 +1,4 @@
+public interface ProfessionalBasketBallPlayer {
+
+ public void playBasketBall();
+}
diff --git a/src/inheritance/src/Spongebob.java b/src/inheritance/src/Spongebob.java
new file mode 100644
index 0000000..68017c5
--- /dev/null
+++ b/src/inheritance/src/Spongebob.java
@@ -0,0 +1,16 @@
+public class Spongebob extends Fish implements ProfessionalBasketBallPlayer{
+
+ public Spongebob(String name, int age, String favoriteFood) {
+ super("Spongebob",age, favoriteFood);
+ }
+
+ @Override
+ public void goToWork() {
+ takeTheCar();
+ }
+
+ @Override
+ public void playBasketBall() {
+ System.out.println("Ohh a cool orange ball and it is bouncy");
+ }
+}
diff --git a/src/inheritance/src/Util.java b/src/inheritance/src/Util.java
new file mode 100644
index 0000000..43c685b
--- /dev/null
+++ b/src/inheritance/src/Util.java
@@ -0,0 +1,33 @@
+public class Util {
+
+ public static void professionalBasketBall(ProfessionalBasketBallPlayer[] basketBallPlayers) {
+ for (ProfessionalBasketBallPlayer p : basketBallPlayers) {
+ if(p instanceof Fish basketBallFish) {
+ basketBallFish.goToWork();
+ p.playBasketBall();
+ }
+ else {
+ p.playBasketBall();
+ }
+ }
+ }
+
+ public static void professionalBasketBallArr(Fish[] fish) {
+ int counter = 0;
+ int index = 0;
+ for (Fish f : fish) {
+ if(f instanceof ProfessionalBasketBallPlayer) {
+ counter++;
+ }
+ ProfessionalBasketBallPlayer[] basketBallPlayers = new ProfessionalBasketBallPlayer[counter];
+ for (Fish fp : fish) {
+ if(fp instanceof ProfessionalBasketBallPlayer) {
+ basketBallPlayers[index] = (ProfessionalBasketBallPlayer)fp;
+ index++;
+ }
+ professionalBasketBall(basketBallPlayers);
+ }
+ }
+
+ }
+}