MezData-Logo

Lösung 2019-So-SE-A2

2.1 Konsequenzen bei Verwendung abstrakter Methoden

Hier in Kurzform der gesamte Zusammenhang:

2.2 Unterschiede der Zugriffsspezifizierer

2.3 Unterschied zwischen überladen und überschreiben

Die Signatur einer Methode ist ihr Name gefolgt von der Parameterdatentypenliste Bsp.: plus(GZ,GZ); plus(FKZ,FKZ); plus(GZ,GZ,GZ). Wenn unter dem Metodennamen mehrere Implementierungen vorhanden sind spricht man von Polymorphie. Beim überladen kann der Compiler schon zur Compile-Zeit die Methode feststellen: Statische Polymorphie. Beim Überschreiben kann oft erst zur Laufzeit anhand der Klasse des Objekts entschieden werden welche Methode aufgerufen werden soll: Dynamische Polymorphie.

2.4

Quellcode [Holzwurm/Regalschrank.java]
import java.util.*;
 
public class Regalschrank{
  private int anzahlFachboeden; // automatisch mit 0 initalisiert
  private int anzahlBauteile;
  private boolean fertig;       // autmatisch mit false initialisiert
  private List<Bauteil> teileListe = new ArrayList<Bauteil>();
 
  public Regalschrank(){}
 
  public Regalschrank(int anzahlFachboeden, int anzahlBauteile){
    this.anzahlFachboeden = anzahlFachboeden;
    this.anzahlBauteile = anzahlBauteile;
  }
  public boolean gesamtkontrolle(){
    boolean ok = true;
    for (Bauteil item : teileListe){
      if(!item.kontrolle())
        ok=false;
    }
    return ok;
  }
  public boolean addBauteil(Bauteil neuesBauteil){
    boolean ok = false;
    if(teileListe.size() < anzahlBauteile){
      teileListe.add(neuesBauteil);
      ok = true;
    }
    return ok;
  }
}