Heim >Java >javaLernprogramm >Warum sind statische Methoden in Schnittstellen vor Java 8 nicht zulässig und warum können sie nicht überschrieben werden?
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?
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.
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!