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); + } + } + + } +}