Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Funktionale Interfaces mit mehreren abstrakten Methoden?
wodurch erkennt ein Compiler, ob ein Interface eine Methode eines anderen Interfaces überschreibt?
Es findet schließlich kein Einsatz von Codes, wie "implements" oder "extends" statt, die dies signalisieren könnten
und eine Annotation wie @Override ist nicht vorgeschrieben.
Hintergrund der Frage ist zu verstehen, wie ein Compiler ein Funktionales Interface mit mehreren abstrakten Methoden (z.B. Comparator) als solches erkennt
und nicht als gewöhnliches Interface interpretiert.
Ein Funktionales Interface definiert immer genau eine abstrakte Methode, statische und Default Methoden können dabei beliebig viele existieren. Schau dir den Comperator Mal an. Dann siehst du das nur eine Methode abstrakt ist.
Ein Funktionales Interface definiert immer genau eine abstrakte Methode, statische und Default Methoden können dabei beliebig viele existieren. Schau dir den Comperator Mal an. Dann siehst du das nur eine Methode abstrakt ist.
A functional interface is an interface that is not declared sealed and has just one abstract method (aside from the methods of Object), and thus represents a single function contract.
Naja, das Interface deklariert ganz genau nur eine abstrakte Methode. equals() und hashCode() und toString(), etc. werden ja nicht von diesem Interface deklariert.
Naja, das Interface deklariert ganz genau nur eine abstrakte Methode. equals() und hashCode() und toString(), etc. werden ja nicht von diesem Interface deklariert.
Ja, nach meinem Verständnis dient dies nur zur Dokumentation wichtiger Dinge in Zusammenhang mit der Methode. Aus Java Sicht macht es keinen Unterschied, ob du die abstrakte Methode im Interface hast oder nicht - mit Ausnahme der Sichtbarkeit: clone in Object ist protected, wird die Methode im Interface verlangt, dann wird eine public Implementation verpflichtend. Aber das ist mir so noch nicht unter gekommen.
Also da evtl. auch kurz zu der Relevanz: Die Antworten #2 (@DrPils) und #5 (@httpdigest) zeigen die „normale“ Sichtweise. Funktionales Interface = 1 abstract Method. Das mit Object ist eigentlich nicht wirklich relevant für die Praxis. Das ist mehr was für „Verrückte“, die Spaß daran haben, die JLS unter dem Kopfkissen liegen zu haben oder so.
Die Aussage von Dir @DrPils ist daher so auch weiterhin mit Like versehen und die würde ich so im Forum auch immer so bringen. Denn das ist in der Praxis nach meiner Erfahrung durchaus so. (JDK Framework Entwickler haben halt alle die JLS unter dem Kopfkissen … daher hat Comparator auch equals drin )