diff --git a/%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md b/%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md index 36d5729..21e7830 100644 --- a/%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md +++ b/%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md @@ -5,7 +5,8 @@ Methoden mit gleichem Namen, aber unterschiedlicher Parameterliste, nennt man ü ### Regeln Überladen Methoden müssen unterschiedlich genug sein, ansonsten Compilefehler. Folgende Regeln gelten: -- Müssen unterschiedliche Argumentlisten haben +- Müssen unterschiedliche Argumentlisten haben, Rückgabewert alleine genügt nicht. +- Subklasse statt Oberklasse als Parameter unterschiedlich genug - Können unterschiedliche Rückgabewerte, Sichtbarkeit und Exceptions haben - Methoden aus Oberklassen können in Unterklassen überladen werden - Konstruktoren können auch überladen sein, aber nicht überschrieben @@ -13,7 +14,7 @@ Methoden müssen unterschiedlich genug sein, ansonsten Compilefehler. Folgende R ### Regeln Überschreiben Methoden in Unterklassen können solche in Oberklassen überschreiben. Folgende Regeln gelten: -- `final`-Methoden können nicht überschrieben werden +- `final`-Methoden können nicht überschrieben werden, Compilefehler! Auch - Nur vererbte Methoden können überschrieben werden, private also nicht. Stattdessen wäre dies dann schlicht eine andere Methode. - Selbe Argumentliste (auch keine Sub- oder Supertypen) - Selber Rückgabewert oder Unterklasse davon