die letzten Tage haben wir uns recht viele Beispiele angeschaut; was geht, was geht nicht, was geht unter welchen Umständen, etc.
Zum Abschluss dieses Themas (naja, fast, ich habe noch ein paar Übungen für einen späteren Zeitpunkt geplant) will ich die wichtigsten Infos nochmal zusammenfassen:
- Gib es bei Methodenaufrufen keine exakte übereinstimmung, wird der nächstgrößere Typ “gezogen”.
- Es wird immer nur der nächstgrößere, aber nie ein kleinerer Wert gezogen, auch wenn dieser theoretisch passen würde, da Datentypen zwar erweitert, aber nicht verkleinert werden können
- Für den Falle, dass sich der Compiler zwischen Autoboxing und dem größerem Wert entscheiden muss, wird immer der nächstgrößere Wert und nicht der Autoboxing-Wert gezogen.
- Bei Wahlmöglichkeit immer die genaue Anzahl von Werten gezogen wird und nicht eine variable Anzahl von Werten
- Diese Wahlmöglichkeitist unabhängig von Autoboxing
- Referenzvariablen können auch im Zuge des Polymorphismus erweitert werden, da ja jede Subklasse auch eine Überklasse ist.
- Wrapper können nicht andere Werte (außer ihrem eigenen primitven Wert) aufnehmen. Abhilfe schafft hier die Aufnahme per Object-Klasse und anschließenden expliziten Cast