Konstruktoren & Veerbung

Moch

Bekanntes Mitglied
Hallo,
Ich habe schon wieder ein Problem -.-

Derzeit bearbeiten wir eine Klausurvorbereitungsaufgabe, in welcher es um Ampel geht. Hierbei sollen wir die Zustände einer Ampel (Rot, RotGelb, Gelb, Grün) als eigene Klasse schreiben, die von einer abstrakten Klasse Zustand erben.

Nach etlichen Versuchen, ist mir vorhin eine neue Idee gekommen, wie ich das umsetzen könnte und natürlich bin ich wie immer gleich gegen eine Wand gerannt.

In der abstrakten Klasse habe ich einen Konstruktor geschrieben, der an die Unterklasse vererbt werden soll. Jetzt weiß ich jedoch nicht, woher das Programm wissen soll, welches Objekt er erstellen soll, wenn ich die Konstruktor der Oberklasse aufrufe... wie kann ich das bewerkstelligen?

Ich schreibe hier mal nur die Konstruktoren rein, um es kurz zu halten

Code:
public abstract class Zustand {
	String akt;
	String next;
	
	public Zustand(String akt, String next){
		this.akt = akt;
		this.next = next;
	}

Code:
public class Rot extends Zustand {

	public Rot(String akt, String next) {
		super(akt, next);
		// TODO Auto-generated constructor stub
	}

Die übrigen Farben entsprechend.

Wie kann ich nun dem Konstruktor der Oberklasse sagen, dass er explizit eine Instanz der Klasse Rot erzeugen soll, ohne dass ich rot direkt als eigenes Objekt anspreche.

Also
Code:
Rot rot = new Rot("Rot", "RotGelb");
wollte ich eigentlich vermeiden, wenn das möglich ist.

Ich möchte den Konstruktur von z.B Rot ansprechen, wenn als String akt "Rot" übergeben wird.

lieben Gruß
Moch
 

Moch

Bekanntes Mitglied
Sowas hatten wir in der Vorlesung leider nicht, weshalb ich auch nicht davon ausgehe, dass Factorymethoden in der Klausur relevant sein werden. (habe mir die eben mal angeschaut)

Bedeutet das, dass mein Ansatz nicht durchführbar ist?
In dem Fall würde ich dann doch den unbequemen Weg gehen und die Objekte direkt erzeugen.

lieben Gruß
Moch
 
A

anonym

Gast
Das klingt sowas von garnicht nach Factory...

Was hälst du von dieser Oberklasse:

Java:
public abstract class Zustand {
        /** Speichert den Namen dieses Zustands z.B. "rot" */
	private String name;
	
	public Zustand(String name){
		this.name = name;
	}
        /** gibt den Zustand in den die Ampel von diesem aus wechseln soll an */
        public abstract Zustand next(); 
}

Die Unterklasse verrat ich dir nicht. Nur soviel: Kein Mensch zwingt dich, in der Unterklasse einen Konstruktor mit einem Parameter zu haben, der Name des Zustands rot ist immer "rot", also kann der Konstruktor der Oberklasse immer mit diesem Wert aufgerufen werden (damit kann man deinen Ansatz übrigens auch retten).
Die Methode "next()" gibt dir dann keinen Namen, sondern direkt einen Zustand, du musst sie in der Unterklasse überschreiben. Und zwar so, dass sie das richtige zurückgibt.
 

homer65

Top Contributor
Wie wäre es denn damit:
[Java]
public class Zustand
{
private String farbe = null;
public Zustand(String farbe)
{
this.farbe = farbe;
}
}
public class Rot extends Zustand
{
super("rot");
}
[/Java]
Der Konstruktor von Rot wäre einfach:
[Java]
Rot r = new Rot();
[/Java]
 

Moch

Bekanntes Mitglied
Danke für Eure Antworten.

Nach längeren hin und her, habe ich mich heute Nacht jedoch dazu entschieden, jede Farbe doch selbst von Hand zu erstellen und die Oberklasse Zustand ohne Konstruktor laufen zu lassen, da sich bei einem Test herausgestellt hat, dass dabei ein Fehler, den ich befürchtet hatte, nicht ergibt und es trotzdem funktioniert.

Trotzdem vielen Dank für Eure Mühe. Wenn ich das nächste Mal mit soetwas arbeite, werde ich darauf zurückgreifen :)

lieben Gruß
Moch
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Verschiedene Konstruktoren mit gleichen Datentypen Java Basics - Anfänger-Themen 8
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
lougoldi Verkettung von Methoden und Konstruktoren Java Basics - Anfänger-Themen 4
J Konstruktoren und Grafik Java Basics - Anfänger-Themen 3
A Cannot find symbol mit Konstruktoren Java Basics - Anfänger-Themen 27
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
C Objekte und Konstruktoren Java Basics - Anfänger-Themen 2
M Methodenaufrufe im Konstruktoren Java Basics - Anfänger-Themen 31
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
M Vererbung Konstruktoren mit festen Werte Java Basics - Anfänger-Themen 2
F Mehrere Konstruktoren? Wofür? Java Basics - Anfänger-Themen 21
J Konstruktoren in Initialisierungsblöcke Java Basics - Anfänger-Themen 6
T Konstruktoren Java Basics - Anfänger-Themen 25
D was bedeutet this. bei Konstruktoren? Java Basics - Anfänger-Themen 4
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
C Die Klasse Menge mit Konstruktoren und einfachen Methoden Java Basics - Anfänger-Themen 5
F Mehrere Konstruktoren Java Basics - Anfänger-Themen 10
G Was ist der Nutzen von generischen Konstruktoren? Java Basics - Anfänger-Themen 4
Q Methoden Konstruktoren anlegen Java Basics - Anfänger-Themen 5
B Objekte in Konstruktoren übergeben Java Basics - Anfänger-Themen 5
D Zähler nicht sichtbar (Thema: Konstruktoren) Java Basics - Anfänger-Themen 2
A Überladen von Konstruktoren Java Basics - Anfänger-Themen 2
V Konstruktoren Java Basics - Anfänger-Themen 15
C Klassen StackOverflow bei erster Nutzung von Klassen/Konstruktoren Java Basics - Anfänger-Themen 9
F Konstruktoren Java Basics - Anfänger-Themen 4
M Erste Schritte Verständnis Problem Konstruktoren Java Basics - Anfänger-Themen 13
Y Klassen, Vererbung, Konstruktoren Java Basics - Anfänger-Themen 13
B Klassen Unterschied Konstruktoren. Java Basics - Anfänger-Themen 3
C Erste Schritte Konstruktoren verstehen Java Basics - Anfänger-Themen 7
W OOP Konstruktoren Erklärung Java Basics - Anfänger-Themen 14
N Abarbeitungsreihenfolge von Konstruktoren Java Basics - Anfänger-Themen 12
O Klassen und Konstruktoren Java Basics - Anfänger-Themen 7
V Konstruktoren -> Funktionsaufrufe Java Basics - Anfänger-Themen 7
Q Konstruktoren und Methoden Java Basics - Anfänger-Themen 2
C Konstruktoren Java Basics - Anfänger-Themen 7
J Konstruktoren Java Basics - Anfänger-Themen 10
T Konstruktoren Java Basics - Anfänger-Themen 6
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
R Vererbung Konstruktoren nicht erkannt Java Basics - Anfänger-Themen 17
H Klassen, Konstruktoren, Instanzen etc Java Basics - Anfänger-Themen 6
J OOP Konstruktoren, setMethode, getMethode usw. Java Basics - Anfänger-Themen 7
A überladene Konstruktoren Java Basics - Anfänger-Themen 7
L Frage zu Konstruktoren und dem this Operator Java Basics - Anfänger-Themen 16
W 2 Konstruktoren Java Basics - Anfänger-Themen 8
B Vererbung und Konstruktoren Java Basics - Anfänger-Themen 33
N Vererbung von Konstruktoren mit Parametern Java Basics - Anfänger-Themen 7
S Konstruktoren verketten Java Basics - Anfänger-Themen 6
A Konstruktoren sollen sich gegenseitig aufrufen Java Basics - Anfänger-Themen 10
B Konstruktoren Sichtbarkeit Java Basics - Anfänger-Themen 2
K Kann man Private-Konstruktoren doch aurufen? Java Basics - Anfänger-Themen 8
E Konstruktoren und Methoden Java Basics - Anfänger-Themen 10
E OOP individual + standard-Konstruktoren Java Basics - Anfänger-Themen 9
S Konstruktoren? Java Basics - Anfänger-Themen 5
K Konstruktoren Java Basics - Anfänger-Themen 13
H Konstruktoren – super! Java Basics - Anfänger-Themen 3
L Geschachtelte Konstruktoren Java Basics - Anfänger-Themen 4
hdi Kleine Design/Convention Frage zu Konstruktoren Java Basics - Anfänger-Themen 4
J Vererbung und Konstruktoren Java Basics - Anfänger-Themen 14
J Problem mit Konstruktoren Java Basics - Anfänger-Themen 2
G Überladen von Konstruktoren mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 4
H Befehl mit Konstruktoren Java Basics - Anfänger-Themen 2
L Konstruktoren bei Vererbung Java Basics - Anfänger-Themen 13
Z wie kann ich überladene Konstruktoren "umleiten"? Java Basics - Anfänger-Themen 11
D Blöde(?) Frage zu Konstruktoren und set-Methoden Java Basics - Anfänger-Themen 3
G Interface und Konstruktoren Java Basics - Anfänger-Themen 3
G Frage zu Konstruktoren Java Basics - Anfänger-Themen 12
G Verständnisfrage zu Konstruktoren Java Basics - Anfänger-Themen 5
G Konstruktoren Java Basics - Anfänger-Themen 9
A Konstruktoren überladen Java Basics - Anfänger-Themen 9
H Konstruktoren + Hilfe Java Basics - Anfänger-Themen 12
H Konstruktoren werden nie geerbt Java Basics - Anfänger-Themen 3
O Vor-/Nachteile/Unterschiede von Konstruktoren und Methoden Java Basics - Anfänger-Themen 3
Bierhumpen 2 Konstruktoren Java Basics - Anfänger-Themen 15
T mehrere Konstruktoren für eine Klasse Java Basics - Anfänger-Themen 7
J Instantvariablen und Konstruktoren Java Basics - Anfänger-Themen 2
Y Vererben - Konstruktoren Java Basics - Anfänger-Themen 2
Z übergabe von string[] an konstruktoren oder methoden Java Basics - Anfänger-Themen 3
L Klassen, Vererbung und Konstruktoren Java Basics - Anfänger-Themen 10
S Frage zu Konstruktoren Java Basics - Anfänger-Themen 7
G Problem mit Gültigkeit von Variabeln und Konstruktoren Java Basics - Anfänger-Themen 4
C Konstruktoren Java Basics - Anfänger-Themen 4
G Konstruktoren (was, wozu, wieso, warum) Java Basics - Anfänger-Themen 4
L Instanzvariablen, Veerbung, Konstruktor Java Basics - Anfänger-Themen 32

Ähnliche Java Themen

Neue Themen


Oben