20
%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md
Normal file
20
%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md
Normal file
@@ -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.
|
||||
@@ -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:
|
||||
|
||||
-
|
||||
Reference in New Issue
Block a user