Kann jemand die Funktionsweise des folgenden Codes erklären ...?Kann jemand die Funktionsweise des folgenden Codes erklären ...?
interface myInterface{}
public class Main {
public static void main(String[] args) {
System.out.println(new myInterface(){public String toString(){return "myInterfacetoString";}});
System.out.println(new myInterface(){public String myFunction(){return "myInterfacemyFunction";}});
}
}
Ausgang ist ...
myInterfacetoString
[email protected]
Alle Antworten, die myInterface in println sagen() Aussage ist anonyme Klasse. Aber wie ich es bereits als Schnittstelle erklärte, warum erlaubt es mir, anonyme Klasse mit dem gleichen Namen zu erstellen ....?
wieder ... wenn diese anonyme Klassen sind, dann sollten Klasse Haupt mir erlauben, einen beliebigen Namen zu diesen anonymen classes..But zu geben, wenn versuchen so..I'm immer Kompilierungsfehler
Ist das Hausaufgaben oder Neugier? Es wird als gute Form angesehen, Hausaufgaben als solche zu markieren. – ojrac
Siddhi, große Frage. Ich schlage jedoch vor, dass Sie die Frage nicht zu oft mit wesentlich neuen Inhalten ändern. Stattdessen können Sie eine neue Frage einreichen und diese darin referenzieren. – akf
Dies macht eine Instanz einer anonymen Klasse, die eine leere Schnittstelle implementiert. One überschreibt toString(), so dass System.out.println das automatisch verwendet. Die andere hat myFunction, die nicht aufgerufen wird, also verwendet sie Object toString(), die ein wenig Information einschließlich der Adresse des Objekts gibt. – mk12