diff --git a/%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md b/%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md new file mode 100644 index 0000000..526a97a --- /dev/null +++ b/%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md @@ -0,0 +1,20 @@ +Methoden mit gleichem Namen, aber unterschiedlicher Parameterliste, nennt man überladen. Es wird dann zur Laufzeit die passende gewählt. + +**Vorsicht:** Unter Umständen, z.B. bei unterschiedlichen Sichtbarkeiten in Vererbungshierarchien, sind Methoden evtl. nicht überladen sondern schlicht neu definiert. Es wird dann ggf. eine andere Methode gewählt oder Code ist nicht kompilierbar. + +### Regeln Überladen +Methoden müssen unterschiedlich genug sein, ansonsten Compilefehler. Folgende Regeln gelten: + +- +- +- Konstruktoren können auch überladen sein, aber nicht überschrieben + +### Regeln Überschreiben +Methoden in Unterklassen können solche in Oberklassen überschreiben. Folgende Regeln gelten: + +- `final`-Methoden können nicht überschrieben werden +- Nur vererbte Methoden können überschrieben werden, private also nicht. Stattdessen wäre dies dann schlicht eine andere Methode. +- Selbe Argumentliste +- Selber Rückgabewert oder Unterklasse davon +- Selbe oder weniger restriktive Sichtbarkeit. Restriktiver nicht erlaubt. +- Kann weniger oder eingeschränktere checked Exceptions werfen, aber nicht mehr oder breitere. Unchecked beliebig. \ No newline at end of file diff --git a/%C3%9Cberladen-von-Methoden.md b/%C3%9Cberladen-von-Methoden.md deleted file mode 100644 index 718ed03..0000000 --- a/%C3%9Cberladen-von-Methoden.md +++ /dev/null @@ -1,8 +0,0 @@ -Methoden mit gleichem Namen, aber unterschiedlicher Parameterliste, nennt man überladen. Es wird dann zur Laufzeit die passende gewählt. - -**Vorsicht:** Unter Umständen, z.B. bei unterschiedlichen Sichtbarkeiten in Vererbungshierarchien, sind Methoden evtl. nicht überladen sondern schlicht neu definiert. Es wird dann ggf. eine andere Methode gewählt oder Code ist nicht kompilierbar. - -### Regeln -Methoden müssen unterschiedlich genug sein. Folgende Regeln gelten: - -- \ No newline at end of file