S
Selb91
Gast
Guten Tag,
ich habe ein Problem mit dem Polymorphismus bei abstrakten Klassen.
Und zwar handelt es sich um folgende Aufgabe, damit ihr euch gleich mal ein Bild machen könnt.
a) Für ein CAD-Programm sollen verschiedene Figuren programmiert werden (Kreise, Rechtecke, Quadrate usw.). Alle Figuren haben eine Farbe (bei uns nur ein String) und entsprechend
setFarbe() und getFarbe()-Methode. Darüber hinaus kann von allen Figuren der Umfang
Fläche berechnet werden. (getUmfang() und getFlaeche()). Die für die spezielle Figurenform
gen Parameter (z.B. Radius oder Kantenlänge) können pro Figurenform ebenfalls mittels
ter set- und get-Funkionen gesetzt und gelesen werden. Mangels eines geeigneten Zeichenpro-gramms gibt die print()-Funktion alle Merkmale einer Figur aus (z.B. Typ, Farbe, Parameter,
fang, Fläche). Programmieren Sie eine abstrakte Klasse Figur, in die Sie so viel, wie möglich
meinsame Funktionalität aller Figuren packen. Die spezifische Information spezieller Figuren
in davon abgeleiteten Klassen implementiert. Programmieren Sie die Klasse Kreis, Rechteck
Quadrat. Achten Sie auf guten Zugriffsschutz, d.h. alle Elemente müssen private sein, Zugriff
folgt ausschließlich über Methoden. Konstruktoren sind vorhanden.
b) Realisieren Sie in Ihrer main()-Funktion Polymorphismus, indem Sie ein Array mit verschiedenen Figuren anlegen und dann in einer Laufschleife Ihre Figuren mittels print() ausgeben.
Nun habe ich natürlich 5 verschiedene Klassen geschrieben, Abstrakte Klasse Figuren, Klasse Kreis, Klasse Rechteck, Klasse Quadrat und zuletzt natürlich die Main-Klasse zum testen...
Mein Problem liegt jetzt darin das ich Problemlos neue Figuren erstellen kann, aber meine Methoden von den jeweiligen Klassen nicht aufrufen kann
Muss ich nun alle meine Methoden auch in die abstrakte Klasse reinschreiben oder geht das irgendwie einfacher/anders?
ich habe ein Problem mit dem Polymorphismus bei abstrakten Klassen.
Und zwar handelt es sich um folgende Aufgabe, damit ihr euch gleich mal ein Bild machen könnt.
a) Für ein CAD-Programm sollen verschiedene Figuren programmiert werden (Kreise, Rechtecke, Quadrate usw.). Alle Figuren haben eine Farbe (bei uns nur ein String) und entsprechend
setFarbe() und getFarbe()-Methode. Darüber hinaus kann von allen Figuren der Umfang
Fläche berechnet werden. (getUmfang() und getFlaeche()). Die für die spezielle Figurenform
gen Parameter (z.B. Radius oder Kantenlänge) können pro Figurenform ebenfalls mittels
ter set- und get-Funkionen gesetzt und gelesen werden. Mangels eines geeigneten Zeichenpro-gramms gibt die print()-Funktion alle Merkmale einer Figur aus (z.B. Typ, Farbe, Parameter,
fang, Fläche). Programmieren Sie eine abstrakte Klasse Figur, in die Sie so viel, wie möglich
meinsame Funktionalität aller Figuren packen. Die spezifische Information spezieller Figuren
in davon abgeleiteten Klassen implementiert. Programmieren Sie die Klasse Kreis, Rechteck
Quadrat. Achten Sie auf guten Zugriffsschutz, d.h. alle Elemente müssen private sein, Zugriff
folgt ausschließlich über Methoden. Konstruktoren sind vorhanden.
b) Realisieren Sie in Ihrer main()-Funktion Polymorphismus, indem Sie ein Array mit verschiedenen Figuren anlegen und dann in einer Laufschleife Ihre Figuren mittels print() ausgeben.
Nun habe ich natürlich 5 verschiedene Klassen geschrieben, Abstrakte Klasse Figuren, Klasse Kreis, Klasse Rechteck, Klasse Quadrat und zuletzt natürlich die Main-Klasse zum testen...
Mein Problem liegt jetzt darin das ich Problemlos neue Figuren erstellen kann, aber meine Methoden von den jeweiligen Klassen nicht aufrufen kann
Java:
Figuren[] neu = new Figuren[5];
neu[0] = new Kreis("Rot",5.0);
neu[1] = new Rechteck("Gelb",5.0, 7.5);
System.out.println(neu[1].getFlaeche());
System.out.println(neu[0].getFlaeche());
neu[0].setRadius(6.0); // diese Methode existiert nur in der Klasse Kreis und ich kann sie nicht aufrufen...
Muss ich nun alle meine Methoden auch in die abstrakte Klasse reinschreiben oder geht das irgendwie einfacher/anders?