So wissen wir alle, dass alle Klassen Objekt implizit erweitern. Wie wäre es mit Schnittstellen? Gibt es eine implizite Superschnittstelle? Ich sage es ist. Der folgende Code kompiliert:implizite Super-Schnittstelle in Java?
java.io.Serializable s1 = null;
java.io.Serializable s2 = null;
s1.equals(s2);
Die equals
Methode wird nicht in Serializable deklariert, aber in Objekt. Da Schnittstellen nur andere Schnittstellen erweitern können und Objekt eine Klasse und keine Schnittstelle ist, muss eine implizite Schnittstelle vorhanden sein, die erweitert wird. Und die Object
Klasse muss dann implizit diese implizite Schnittstelle implementieren (wow, das war seltsam zu schreiben).
Also, die Frage ist, wie richtig ist das?
Ich bekomme nicht Ihre Behauptung, dass "es einige implizite Schnittstelle geben muss, die erweitert wird". Wie kommen Sie zu dieser Schlussfolgerung aus dem, was wir hier sehen? –
Als eine Randnotiz wird dieser Code eine NullPointerException auslösen, anstatt zu arbeiten. – Powerlord
Ich habe nie gesagt, es würde laufen. Ich sagte ausdrücklich nur, dass es kompilieren würde. –