Heim >Java >javaLernprogramm >Warum ist „super.super.method();' in Java nicht zulässig?
Warum ist super.super.method(); In Java verboten?
Die Verwendung von super.super.method(); in Java ist aus Kapselungsgründen verboten. Durch die Kapselung soll verhindert werden, dass das Verhalten der übergeordneten Klasse umgangen wird.
Während es manchmal sinnvoll ist, das Verhalten der eigenen Klasse (innerhalb derselben Methode) zu umgehen, ist es wichtig, das Verhalten der übergeordneten Klasse nicht zu umgehen. Betrachten Sie die folgende Klassenhierarchie:
Es ist logisch, Folgendes zu definieren Methoden:
Dadurch wird sichergestellt, dass die Unterklassen halten sich an die von ihren übergeordneten Klassen auferlegten Einschränkungen.
Wenn jedoch super.super.add() zulässig wäre, könnte eine böswillige NaughtyCollection-Unterklasse die Anforderung an rote Elemente der RedCollection umgehen:
Dies würde kaputt gehen die von RedCollection eingerichtete Invariante, die eine Sammlung von Elementen erstellt, die möglicherweise nicht rot sind.
Daher sind super.super.method()-Aufrufe in Java verboten, um die Kapselung aufrechtzuerhalten und Klassenverhalten zu erzwingen.
Das obige ist der detaillierte Inhalt vonWarum ist „super.super.method();' in Java nicht zulässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!