Lösungsvorschlag 9.3 - Aufgabe 1

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
public class Viereck {
    //Attribute - public um direkten Zugriff durch die Unterklasse zu ermöglichen
    public int a;
    public int b;
    public int c;
    public int d;
 
    public Viereck(int a, int b, int c, int d){
        this.a=a;
        this.b=b;
        this.c=c;
        this.d=d;
    }
 
    public Viereck(int a, int b){
        this.a=a;
        this.b=b;
        c=a;
        d=b;
    }
 
    public Viereck(int a){
        this.a=a;
        b=a;
        c=a;
        d=a;
    }
 
 
 
    public void umfang(){
        int u=a+b+c+d;
        System.out.println("Ich bin ein Viereck. Umfang = "+u);
    }
 
}


public class Rechteck extends Viereck {
 
    public Rechteck(int a, int b){
        super(a,b);
    }
 
     public Rechteck(int a){
        super(a);
    }
 
 
    public void umfang(){
        int u=2*a + 2*b;
        System.out.println("Ich bin ein Rechteck. Umfang = "+u);
    }
 
}


public class Quadrat extends Rechteck {
 
    public Quadrat(int a){
        super(a);
    }
 
 
    public void umfang(){
        int u=2*a + 2*b;
        System.out.println("Ich bin ein Quadrat. Umfang = "+u);
    }
 
    public void flaeche (){
        int f=a*a;
        System.out.println("Ich bin ein Quadrat. Flaeche = "+f);
}
}


q ist vom Datentyp Viereck. Die Methode flaeche() ist aber im Gegensatz zur Methode umfang() in der Klasse Viereck nicht implementiert, weshalb das Programm auch nicht danach sucht, ob die Methode nicht vielleicht in der Unterklasse überschrieben wurde.