Heim >Java >javaLernprogramm >Warum sind statische Methoden in Schnittstellen vor Java 8 nicht zulässig und warum können sie nicht überschrieben werden?

Warum sind statische Methoden in Schnittstellen vor Java 8 nicht zulässig und warum können sie nicht überschrieben werden?

Linda Hamilton
Linda HamiltonOriginal
2024-12-24 08:33:42560Durchsuche

Why Aren't Static Methods Allowed in Pre-Java 8 Interfaces, and Why Can't They Be Overridden?

Warum kann ich keine statische Methode in einer Java-Schnittstelle definieren?

Schnittstellen in Java, wie sie in definiert wurden In früheren Versionen war die Einbeziehung statischer Methoden nicht möglich. Dies hat sich inzwischen in Java 8 geändert, wo nun statische Methoden zulässig sind. Es bleibt jedoch eine Frage offen: Warum waren statische Methoden überhaupt nicht in Schnittstellen zulässig und warum können statische Methoden nicht überschrieben werden?

Technische Einschränkungen

Es gab keinen wesentlichen technischen Grund, statische Methoden in Schnittstellen in früheren Java-Versionen zu verhindern. Es war einfach eine Designentscheidung der Sprachentwickler. Diese Entscheidung wurde später überarbeitet und führte zur Einführung statischer Schnittstellenmethoden in Java 8.

Statische Methoden überschreiben

Der Grund, warum statische Methoden nicht überschrieben werden können, ist wurzelt in der Mechanik, wie Methodenaufrufe aufgelöst werden. Statische Methoden werden zur Kompilierungszeit aufgelöst, da sie einer bestimmten Klasse zugeordnet sind. Im Gegensatz dazu werden Instanzmethoden dynamisch basierend auf dem Typ des Objekts versendet, der nur zur Laufzeit bekannt ist.

Da bei statischen Methoden die Klasse zur Kompilierungszeit bekannt ist, ist kein dynamischer Versand erforderlich . Daher gilt das Konzept des Überschreibens nicht für statische Methoden.

Das obige ist der detaillierte Inhalt vonWarum sind statische Methoden in Schnittstellen vor Java 8 nicht zulässig und warum können sie nicht überschrieben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn