2019-11-17 15:37:21 +00:00
parent aabf10bfd1
commit 9f0f1b1ab8

@@ -264,4 +264,9 @@ Trowable (Checked)
- Signatur zur Compilezeit, also der definierte Typ. Es wird aber die Methode des tatsächlichen Objekts ausgeführt, sollte diese *zusätzlich* überladen sein. Wenn Methode nicht in der deklarierten Klasse vorhanden ist -> Compilerfehler.
- **Überschreiben vs. Überladen**:
- *Überladen*: Argumentliste muss sich ändern (exakter Typ zählt), damit Methode unterschiedlich ist. Rest egal, zählt aber nicht zur Unterscheidung.
- *Überschreiben*: Argumentliste darf sich nicht ändern (exakter Typ zählt). Exceptions können wegfallen, keine neuen oder Superklassen der vorhandenen. Sichtbarkeit nicht restriktiver, großzügiger geht. Rückgabe höchstens Subklasse.
- *Überschreiben*: Argumentliste darf sich nicht ändern (exakter Typ zählt). Exceptions können wegfallen, keine neuen oder Superklassen der vorhandenen. Sichtbarkeit nicht restriktiver, großzügiger geht. Rückgabe höchstens Subklasse.
- **Import nicht sichtbarer Objekte** ist verboten -> Compilefehler
- ``import org.eidecker.oca8lernen.lastminute.Oberklasse.*`` importiert nicht ``Oberklasse``. Ist aber erlaubt für innere Klassen!
- **Neudefinition nicht sichtbarer Methoden**
- ``private``-Methoden dürfen in der Unterklasse neu definiert werden
- Auch nicht sichtbare package-private Methoden können neu definiert werden. (Höllisch aufpassen bei Polymorphie, ist nicht überschrieben)