Überladene Methodenauflösung und Nullargumente
Der Prozess der Auswahl der richtigen überladenen Methode, wenn ein Nullargument bereitgestellt wird, folgt einer bestimmten Abfolge von Schritten.
1. Zugänglichkeit:
Zunächst filtert der Compiler alle unzugänglichen überladenen Methoden basierend auf den Zugriffsrechten des aufrufenden Codes heraus.
2. Anwendbarkeit:
Als nächstes werden anwendbare Methoden identifiziert. Eine Methode gilt als anwendbar, wenn jeder formale Parameter ein entsprechendes Argument hat, das implizit konvertiert werden kann. Nullwerte können nicht implizit in Werttypen (wie int
oder Point
) konvertiert werden, sodass diese Methoden nicht berücksichtigt werden.
3. params
Methodenhandhabung:
Methoden, die das Schlüsselwort params
verwenden, können entweder erweitert (wobei das Array als einzelne Argumente behandelt wird) oder nicht erweitert (wobei es als einzelnes Array-Argument behandelt wird) aufgerufen werden. Wenn beides zutrifft, wird die erweiterte Form bevorzugt und die nicht erweiterte Version verworfen.
4. Auswahl der besten Übereinstimmungen:
Abschließend vergleicht der Compiler die verbleibenden anwendbaren Methoden, um die spezifischste Übereinstimmung zu finden. Eine Methode mit einem spezielleren Parametertyp gilt als spezifischer als eine mit einem allgemeineren Typ.
In Szenarien mit Mehrdeutigkeit (mehrere gleich spezifische Methoden), wie im bereitgestellten Beispiel, kann der Compiler den besten Kandidaten nicht ermitteln, was zu einem Kompilierungsfehler führt. Der Parametertyp object
ist weniger spezifisch als object[]
und string
, was zu dieser Mehrdeutigkeit führt.
Das obige ist der detaillierte Inhalt vonWie geht die Auflösung überladener Methoden mit Nullwerten um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!