Utwórz fermę (HenFactory) do hodowli kurczaków (Hen):
1. Utwórz klasę Hen.
1.1. Spraw, aby była ona abstrakcyjna.
1.2. Dodaj do klasy abstrakcyjnej metodę int getMonthlyEggCount().
1.3. Dodaj do klasy metodę String getDescription(). Powinna ona zwracać komunikat "Jestem kurczakiem."
2. Utwórz klasę NorthAmericanHen, która dziedziczy klasę Hen.
3. Utwórz klasę EuropeanHen, która dziedziczy klasę Hen.
4. Utwórz klasę AsianHen, która dziedziczy klasę Hen.
5. Utwórz klasę AfricanHen, która dziedziczy klasę Hen.
6. W każdej z tych czterech klas napisz własną implementację metody getMonthlyEggCount.
Metoda powinna zwracać miesięczną liczbę jaj znoszonych przez ten gatunek kur.
7. W każdej z tych czterech klas stwórz własną implementację metody getDescription.
Metoda musi zwracać następujący ciąg znaków:
<klasa macierzysta>.getDescription() + " Pochodzę z <kontynent>. Znoszę <n> jaj na miesiąc."
gdzie <kontynent> jest nazwą kontynentu
i <n> jest liczbą jaj na miesiąc.
8. W klasie HenFactory zaimplementuj metodę getHen. Powinna ona zwracać rasę kurczaka odpowiadającą kontynentowi, z którego pochodzi kurczak.
9. Wszystkie utworzone przez Ciebie klasy muszą zostać umieszczone w osobnych plikach.
- Klasa Hen class musi być abstrakcyjna.
- Klasa Hen musi posiadać abstrakcyjną metodę int getMonthlyEggCount().
- Klasa Hen musi implementować metodę String getDescription(), która zwraca frazę "Jestem kurczakiem."
- Klasy NorthAmericanHen, EuropeanHen, AsianHen i AfricanHen muszą dziedziczyć klasę Hen i znajdować się w osobnych plikach.
- Klasy NorthAmericanHen, EuropeanHen, AsianHen i AfricanHen muszą implementować metodę getMonthlyEggCount, która powinna zwracać miesięczną liczbę jaj znoszoną przez dany gatunek kurczaka.
- NorthAmericanHen, EuropeanHen, AsianHen i AfricanHen muszą nadpisać metodę getDescription klasy macierzystej tak, aby zwracany ciąg znaków wyglądał następująco: <klasa macierzysta>.getDescription() + " Pochodzę z <kontynent>. Znoszę <n> jaj na miesiąc." gdzie <kontynent> jest nazwą kontynentu, a <n> jest liczbą jaj na miesiąc.
- Metoda getHen musi być zaimplementowana w klasie HenFactory i musi zwracać typ kurczaka, który odpowiada przekazanemu kontynentowi.