Lösungsvorschlag 9.3 - Aufgabe 1: Unterschied zwischen den Versionen

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „<syntaxhighlight lang="java"> public class Viereck { //Attribute - public um direkten Zugriff durch die Unterklasse zu ermöglichen public int a; p…“)
 

Aktuelle Version vom 1. Juni 2014, 11:26 Uhr

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.