Hallo,
ich stehe gerade etwas auf dem Schlauch oder es ist überhaupt nicht möglich wie ich mir das denke.
Angenommen ich hab einen richtig dicken Konstruktor in einer Klasse und möchte alternative überladene anbieten die die dicken Konstruktor aufrufen sollen. Erweiterte ich eine Klasse funktioniert das mit dem super Konstruktor so wie ich mir das denke. Nur nicht innerhalb der selben klasse.
Ich hab mal ein Code Beispiel zusammen geworfen als Veranschaulichung was ich meine.
ich stehe gerade etwas auf dem Schlauch oder es ist überhaupt nicht möglich wie ich mir das denke.
Angenommen ich hab einen richtig dicken Konstruktor in einer Klasse und möchte alternative überladene anbieten die die dicken Konstruktor aufrufen sollen. Erweiterte ich eine Klasse funktioniert das mit dem super Konstruktor so wie ich mir das denke. Nur nicht innerhalb der selben klasse.
Ich hab mal ein Code Beispiel zusammen geworfen als Veranschaulichung was ich meine.
Java:
import java.awt.Color;
public abstract class AbstractBall {
int x, y;
Color farbe;
AbstractBall(int x, int y){
this.x=x;
this.y=y;
}
AbstractBall(int x, int y, Color farbe){
this.x=x;
this.y=y;
this.farbe=farbe;
}
}
Java:
import java.awt.Color;
public class Tennisball extends AbstractBall {
String irgendwas;
Tennisball(int x, int y, Color farbe, String irgendwas) {
super(x, y, farbe);
this.irgendwas=irgendwas+" noch mehr Text";
}
Tennisball(int x, int y, Color farbe) {
//Hier ist das Problem das es doppelten Code geben würde um die variable irgendwas zu befüllen.
super(x, y, farbe);
this.irgendwas="blub noch mehr Text";
//Diese alternativen hatte ich mir überlegt funktionieren aber offensichtlich
//nicht mit einem konstruktor.
Tennisball(x,y,farbe,"blub");
//oder
new Tennisball(x,y,farbe,"blub");
//oder ?????????
}
}
Zuletzt bearbeitet: