2.1 Konsequenzen bei Verwendung abstrakter Methoden
Hier in Kurzform der gesamte Zusammenhang:
- Eine Methode wird als abstrakt gekennzeichnet, wenn man den Programmcode nicht definieren kann oder will. Praktisch wird nur die Schnittstelle deklariert.
- Enthält eine Klasse eine abstrakte Methode, muss sie als abstrakt gekennzeichnet werden.
- Aus abstrakten Klassen können keine Objekte instanziiert werden.
- Um wieder Objekte generieren zu können müsse in einer Unterklasse alle vorgegebenen abstrakten Methoden definiert (ausprogrammiert) werden.
2.2 Unterschiede der Zugriffsspezifizierer
- private (-): Nur Methoden in der selben Klasse können darauf zugreifen.
- protected (#): Nur Methoden in der selben Klasse und in Unterklassen können darauf zugreifen. Erspart Zugriffsmethoden bei Attributen.
- public (+): Öffentlich zugänglich, auch aus "fremden" Klassen kann zugegriffen werden.
2.3 Unterschied zwischen überladen und überschreiben
- Wird in einer Klasse eine Methode ein weiteres mal mit einer anderen Parameterliste definiert wird das überladen genannt.
- Wird in einer Unterklasse eine Methode der Oberklasse redefiniert wird das überschreiben genannt.
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.