From 9f0f1b1ab81d0932e1f19812633dc6ba8a8f5e7e Mon Sep 17 00:00:00 2001 From: Sebastian Eidecker Date: Sun, 17 Nov 2019 15:37:21 +0000 Subject: [PATCH] --- Aufpassen%21.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Aufpassen%21.md b/Aufpassen%21.md index 572f22d..78252bd 100644 --- a/Aufpassen%21.md +++ b/Aufpassen%21.md @@ -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. \ No newline at end of file + - *Ü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) \ No newline at end of file