will erben!

Status
Nicht offen für weitere Antworten.
Hi!

kleines Problem:

Habe 3 Klassen, wobei Klasse2 die Superklasse ist

Klasse1 liefert ein double an Klasse2
Code:
// Klasse1
Klasse1 meindouble = new Klasse1(10.0);

//Klasse2
class Klasse2 extends Klasse1
{
    public Klasse2(double x)
    this.x = x;
}

wie erbe ich jetzt in Klasse3 von Klasse2?

Code:
//Klasse3
class Klasse3 extends Klasse2
{
    public Klasse2(double x)
    super(x); // da extends Klasse2 ist Klasse2 die Superklasse???
}
 
Code:
public class Klasse1
{
	public static void main(String[] args) 
	{
		Punkt meineDaten = new Punkt(20.0,20.0);
	}
}
bis hierher :toll:
Code:
public class Klasse2 extends Klasse1
{	
	protected double x,y;
	
	public Klasse2(double x, double y)
        {
		this.x = x;
                this.y = y;
	}

        public double getVerbrauch()
        {
		return x/y;
	}
}
auch bis hier :toll:

aber ab hier gibt es Probleme: ???:L :bloed:

Code:
public class Klasse3 extends Klasse2
{	
	public double getArea()
        {
		return x*y;
	}
}

Der Compiler meldet, dass er die x und y der Klasse3 nicht übergeben kann.

Aber: Warum ist überhaupt eine Schnittstelle erforderlich?
Wie muss sie in Klasse 3 aussehen?
 
Irgendwie verschließt sich mir überhaupt der Sinn dieses ganzen Konstrukts.

1) Warum erbt Klasse 2 überhaupt Klasse 1, in der nur eine völlig sinnnfreie static-Methode definiert ist?
2) Klasse 2 scheint (abgesehen von der sinnlosen Vererbung von Klasse 1) soweit ok zu sein.
3) Klasse 3 hat keinen Konstruktor, ist also völlig unbrauchbar. Nur für den Fall, daß Die das unklar ist: Konstruktoren werden NICHT vererbt. Willst Du den Konstruktor von Klasse 2 aus Klasse 3 benutzen, mußt Du was in der Art schreiben:

Code:
public Klasse3(double x, double y) {
      super(x,y);

}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben