Schreibe eine Fabrik (HenFactory) zur Herstellung von Hühnern (Hen):
1. Schreibe die Klasse Hen.
1.1. Mache sie abstract.
1.2. Füge die Methode int getMonthlyEggCount() zur abstrakten Klasse hinzu.
1.3. Füge eine die Methode String getDescription() zur Klasse hinzu. Sie muss „Ich bin ein Huhn.“ zurückgeben.
2. Erstelle die Klasse NorthAmericanHen, die von der Klasse Hen erbt.
3. Erstelle die Klasse EuropeanHen, die von der Klasse Hen erbt.
4. Erstelle die Klasse AsianHen, die von der Klasse Hen erbt.
5. Erstelle die Klasse AfricanHen, die von der Klasse Hen erbt.
6. Schreibe in jeder dieser vier Klassen eine eigene Implementierung der Methode getMonthlyEggCount.
Die Methode muss die Anzahl der Eier pro Monat, die von dieser Hühnerart produziert werden, zurückgeben.
7. Schreibe in jeder dieser vier Klassen eine eigene Implementierung der Methode getDescription.
Die Methode muss eine Zeichenkette wie folgt zurückgeben:
<Elternklasse>.getDescription() + " Ich komme aus <Kontinent>. Ich lege <n> Eier pro Monat."
wobei <Kontinent> der Name des Kontinents ist
und <n> die Anzahl der Eier pro Monat.
8. Implementiere in der Klasse HenFactory die Methode getHen. Sie muss die Hühnerrasse zurückgeben, die dem Kontinent entspricht, von dem das Huhn stammt.
9. Du musst alle Klassen in separaten Dateien erstellen.
- Die Hen-Klasse muss abstract sein.
- Die Hen-Klasse muss die abstrakte Methode int getMonthlyEggCount() besitzen.
- Die Hen-Klasse muss die Methode String getDescription() implementieren, die „Ich bin ein Huhn“ zurückgibt.
- Die Klassen NorthAmericanHen, EuropeanHen, AsianHen und AfricanHen müssen von der Hen-Klasse erben und in separaten Dateien erstellt werden.
- Die Klassen NorthAmericanHen, EuropeanHen, AsianHen und AfricanHen müssen die Methode getMonthlyEggCount implementieren, welche die Anzahl der Eier pro Monat, die von der entsprechenden Hühnerart gelegt wurden, zurückgeben muss.
- Die Klassen NorthAmericanHen, EuropeanHen, AsianHen und AfricanHen müssen die getDescription-Methode der Elternklasse überschreiben, so dass die zurückgegebene Zeichenfolge wie folgt aussieht: <Elternklasse>.getDescription() + " Ich komme aus <Kontinent>. Ich lege <n> Eier pro Monat", wobei <Kontinent> der Name des Kontinents ist und <n> die Anzahl der Eier pro Monat.
- Die getHen-Methode muss in der Klasse HenFactory implementiert sein und muss den Hühnertyp zurückgeben, der dem übergebenen Kontinent entspricht.