diff --git a/%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md b/%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md index 21b0ad1..f453843 100644 --- a/%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md +++ b/%C3%9Cberladen-und-%C3%9Cberschreiben-von-Methoden.md @@ -13,7 +13,15 @@ Methoden müssen unterschiedlich genug sein, ansonsten Compilefehler. Folgende R - Die tatsächliche Methode wird zur Compilezeit ermittelt (und damit der deklarierte Typ, nicht der tatsächliche zur Laufzeit). #### Primitive und Autoboxing -- +- Wenn perfekt passende Methode vorhanden wird sie ausgewählt (sowohl bei Primitiven als auch bei Wrapper) +- Wrapper übergeben: + - Wrapper nicht vorhanden, primitiv vorhanden: Primitive wird gewählt + - Wrapper nicht vorhanden, primitiv nicht vorhanden, primitiv auto Cast vorhanden: Passende primitive mit automatischem Cast wird ausgewählt + - Wrapper nicht vorhanden, überhaupt keine (passenden) mit Primitive: Compile-Fehler. Kein Autocasting bei Wrapper-Typen + +- Primitiv übergeben: + - Primitiv nicht vorhanden, Wrapper nicht vorhanden: Passende primitive mit automatischem Cast wird ausgewählt + - Primitiv nicht vorhanden, aber Wrapper: int -> long, long -> Long => Erst Autocast auf Primitiv, dann Wrapper ### Regeln Überschreiben Methoden in Unterklassen können solche in Oberklassen überschreiben. Folgende Regeln gelten: