Methoden Wie kann ich eine Methode so schreiben, dass Methodenaufruf polymorph erfolgen kann?

EugenIS

Mitglied
Hallo und danke fürs reinschauen. Meine Frage ist:

Wie kann ich eine Methode so schreiben, dass Methodenaufruf polymorph erfolgen kann?

Polymorph verstehe ich als verschiedentypig. oder so... oder denke ich gerade falsch?

danke im vorraus.
 
Aufgabe 2 (4 Punkte)
Definieren Sie die drei Klassen Tier und Hund und Katze so, dass sie eine Vererbungshierarchie bilden, und
dass man aus der Klasse Tier keine Objekt erzeugen kann. Die Klasse Tier soll eine private Instanzvariable
geräusch vom Typ String besitzen, die durch den Konstruktor der Klasse Hund mit der Zeichenkette „Wau!“
und durch den Konstruktor der Klasse Katze mit „Miau!“ initialisiert werden kann. Ferner ist eine Methode
geräuschMachen() so zu implementieren, dass der Methodenaufruf polymorph erfolgen kann (siehe Aufgabe 3).
Code:
	abstract class Tier {
		private String geraeusch;
		public Tier(String geraeusch) {
			this.geraeusch = geraeusch;
		}
		public void geraeuschMachen() {
			System.out.println(geraeusch);
		}
	}
	public class Katze extends Tier {
		public Katze() {
			super("Miau");
		}
	}
	public class Hund extends Tier {
		public Hund() {
			super("Wau");
		}
	}
	public class Februar2009 {
		public static void main(String[] args) {
			Hund h = new Hund();
			h.geraeuschMachen();
		}
	}

ich vermute sogar dass ich es richtig mitlerweile habe, denn die methode ruft schon das richtige gereusch aus.
 
Unter Polymorph kann ich mir in diesem Kontext viel Vorstellen. Da es um bei der Übung wohl auch um [c]abstract[/c] geht, nehme ich an, du sollst die Methode [c]geraeuschMachen()[/c] abstract machen. Post mal Aufgabe 3, vllt wird man daraus schlauer
 
Das hier ist nicht polymorph aufgerufen
Java:
	public class Februar2009 {
		public static void main(String[] args) {
			Hund h = new Hund();
			h.geraeuschMachen();
		}
	}

das ist polymorph aufgerufen
Java:
	public class Februar2009 {
		public static void main(String[] args) {
			Tier h = new Hund();
			h.geraeuschMachen();
		}
	}
 
Aufgabe 3 (4 Punkte)
Schreiben Sie ein Java-Programm Tierlaute, dem man eine beliebige Anzahl von
Kommandozeilenparametern übergeben kann. Für jeden Kommandozeilenparameter, der „Hund“ lautet, wird
ein Objekt der Klasse Hund erzeugt und zu einem Sammlungsobjekt namen tiere vom Typ ArrayList hinzugefügt.
In das gleiche Sammlungsobjekt tiere wird auch für jeden Kommandozeilenparameter, der „Katze“ lautet ein
Katze-Objekt hinzugefügt.




hierbei entsteht jetzt die frage wie ich eine klasse in eine ArrayList reinprügele?
 
Java:
List<Tier> tiere = new ArrayList<Tier>();
tiere.add(new Hund());
tiere.add(new Katze());
 

Zurück
Oben