Heim >Java >javaLernprogramm >Warum konnten Java-Schnittstellen vor Java 8 keine statischen Methoden haben?
Ab Java 8 unterstützen Schnittstellen jetzt statische Methoden. Darüber hinaus können sie konkrete Instanzmethoden, aber keine Instanzfelder haben.
In früheren Java-Versionen konnten Schnittstellen aus folgenden Gründen keine statischen Methoden enthalten:
Statische Methoden können nicht überschrieben werden, da sie zur Kompilierzeit aufgelöst werden. Der dynamische Versand wird für Instanzmethoden verwendet, wenn der Compiler den konkreten Typ des Objekts nicht bestimmen und daher die aufzurufende Methode nicht auflösen kann. Da statische Methoden jedoch eine bekannte Klasse erfordern, können sie statisch aufgelöst werden, wodurch ein dynamischer Versand unnötig wird.
Mit anderen Worten: Wenn sowohl eine Oberklasse als auch eine Unterklasse statische Methoden mit derselben Signatur haben, wird die Methode der Unterklasse dies tun immer zuerst aufgerufen werden und die Methode der Oberklasse überschreiben. Dies ist jedoch konzeptionell überflüssig, da man immer die Klasse angeben kann, die die gewünschte Version der statischen Methode enthält.
Bezüglich Ihrer zusätzlichen Bedenken bezüglich der Durchsetzung einer konstruktorähnlichen Methode für IXMLizable, beachten Sie Folgendes:
Das obige ist der detaillierte Inhalt vonWarum konnten Java-Schnittstellen vor Java 8 keine statischen Methoden haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!