Dies erstellt nicht die Instanz von Interface, es erstellt eine Klasse, die eine Schnittstelle implementiert. Wenn Sie also schreiben
Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
};
Sie sind eigentlich eine Klasse erstellen, die die Runnable-Schnittstelle implementiert. Sie müssen alle Regeln folgen hier, hier, wir sind das Überschreiben der run-Methode für Runnable
There is similar thing for abstract class also. We can test using an example
public abstract class AbstractClass {
public void someMethod(){
System.out.println("abstract class");
}
}
und eine andere Klasse dh TestClass
public class TestClass {
public static void main(String[] args) {
AbstractClass abstractClass = new AbstractClass() {
public void someMethod() {
System.out.println("concrete class method");
}
};
abstractClass.someMethod();
}
}
Dies wird die Instanz einer Unterklasse schaffen, in der wir sind überschreiben someMethod()
; Dieses Programm druckt
concrete class method
Dies beweist, dass wir die Instanz der Unterklasse erstellen.
Nein, du kannst nicht. Auch alle Klassen erben von Object, während Schnittstelle nicht – Ankit
Haben Sie es versucht? In Ihrem Beispiel erstellen Sie eine Instanz einer anonymen Klasse, die die Schnittstelle implementiert. – Axel
Ähnliche Konzept: https://stackoverflow.com/questions/33994009/can-we-create-object-of-abstract-class –