Hey, ich benutze gerade zum ersten mal Interfaces, dabei ist folgendes Problem aufgetreten:
Ich habe eine Hauptklasse, welche ein Interface implementiert und dazu eine Subklasse. In der Subklasse soll die Methode draw, die zum Interface gehört erweitert werden, jedoch wird die Mehtode überschrieben statt erweitert. Fehlt mir etwas, habe ich ein Denkfehler, oder habe ich vllt etwas grundsätzlich falsch verstanden?
Hauptklasse:
Subklasse:
Ich habe eine Hauptklasse, welche ein Interface implementiert und dazu eine Subklasse. In der Subklasse soll die Methode draw, die zum Interface gehört erweitert werden, jedoch wird die Mehtode überschrieben statt erweitert. Fehlt mir etwas, habe ich ein Denkfehler, oder habe ich vllt etwas grundsätzlich falsch verstanden?
Hauptklasse:
Java:
public class EinfacheLandschaft implements Drawable {
protected Color land;
protected Color himmel;
/*Es folgen Konstruktoren und getter Methoden
*...
*...
*...
*/
public void draw(Graphics g) {
g.setColor(himmel);
Rectangle sky = new Rectangle(0,0, 800,285);
g.fillRect(sky.x,sky.y,sky.width,sky.height);
g.setColor(Color.black);
g.drawLine(0, 285, 800, 285);
g.setColor(land);
Rectangle ground = new Rectangle(0,285, 800,285);
g.fillRect(ground.x, ground.y,ground.width, ground.height);
}
Subklasse:
Java:
public class Landschaft extends EinfacheLandschaft implements Drawable {
protected int hügel;
protected int bäume;
Color darkGreen = new Color(0, 100, 0);
protected Color baumkrone = darkGreen;
/* Erweiterte Konstruktoren etc.
*
*
*
*/
public void draw(Graphics g) {
Color land1 =land.darker();
g.setColor(land1);
for(int i = 0; i<hügel;i++) {
int rX = randomNumberX();
int rY = randomNumberY();
Rectangle hügel = new Rectangle(rX,rY, 50,50);
g.fillRect(hügel.x, hügel.y,hügel.width, hügel.height);
}
Color brown = new Color(165, 42, 42);
for (int i = 0; i< bäume; i++) {
g.setColor(brown);
int rX = randomNumberX();
int rY = randomNumberY();
Rectangle stamm = new Rectangle(rX,rY, 10,30);
g.fillRect(stamm.x, stamm.y,stamm.width, stamm.height);
g.setColor(baumkrone);
g.fillOval(rX-5, rY-15, 20,30);
}
}
Zuletzt bearbeitet: