Methodenauflösung
Methodenauflösung bezeichnet den Prozess, durch den bestimmt wird, welche Implementierung einer Methode bei einem Aufruf ausgeführt wird. Sie ist zentral für die Dynamik von objektorientierten Sprachen, da Klassenhierarchien, Schnittstellen oder Traits die Verfügbarkeit von Methoden beeinflussen.
Man unterscheidet grundsätzlich statische (statisch gebundene) und dynamische Bindung. Statisch gebundene Aufrufe verknüpfen zur Compile-Zeit eine
Bei Vererbung erfolgt die Auflösung typischerweise durch eine Suchreihenfolge, die vom konkreten Typen aus die Klassenhierarchie
Interfaces, Traits oder Default-Methoden fügen zusätzliche Komplexität hinzu. Sind mehrere Schnittstellen beteiligt oder liefern Default-Methoden konkrete
Überladung und Überschreibung unterscheiden sich in der Methodenauflösung zusätzlich. Überladung beruht auf unterschiedlichen Signaturen derselben Klasse
Zur Leistungsoptimierung dienen Techniken wie virtuelle Tabellen (Vtables), Inline-Caches und Methodentabellen, die den Aufwand der Auflösung