Polymorphism
Polymorphie lässt dieselbe Schnittstelle auf Instanzen verschiedener Typen operieren, in zwei Formen: statisch (Überladung/Generics) und dynamisch (Überschreiben/virtuelle Methoden).
Zweck
Verschiedene Typen über eine einheitliche Schnittstelle behandeln und Wiederverwendbarkeit sowie Erweiterbarkeit des Codes verbessern.
Mechanismus
Statische Polymorphie: Überladung (gleicher Name, andere Parameter) und Generics (zur Compile-Zeit instanziiert). Dynamische Polymorphie: Überschreiben (Subklasse ersetzt Elternmethode), dispatched über vtables. Go nutzt implizit implementierte Interfaces; Rust Trait-Objekte.
Anwendungsfälle
- Objektorientiertes Design
- Schnittstellen-Abstraktion
- Code-Wiederverwendung