überschreiben von interface-Methoden
Für eine Schnittstelle wie
public interface something<T>
{
public something<T> somemethod();
}
von dem, was ich verstehe, ist die abstrakte Methode somemethod() muss überschrieben mit einer Methode, die ein Objekt zurückgibt, der Implementierung der Schnittstelle. Jedoch, alle versuche zu tun, so haben mir die "nicht überschreiben die abstrakte Methode somemethod()" compiler-Fehler.
Habe ich versucht, etwas zu tun, wie
public class someclass {
...
public something<T> somemethod() { ... return new someclass(); }
...
or
public someclass somemethod() { ... return new someclass(); }
...
}
Wie genau würde ich die Implementierung einer solchen Methode?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihnen fehlt die generische Deklaration in Ihrer Umsetzung Klasse. Hier ist ein Beispiel:
Alle diese stellen:
Zuerst, Ihre
someclass
implementiert nicht die Schnittstelle im code-Beispiel oben. Sie können es implementieren Sie die Schnittstelle für eine bestimmte, konkrete Art, wie im folgenden Beispiel, woString
wird als konkreter Typ wird. Die Methode, die dann brauchen würde, um wieder einesomething<String>
.Oder könnten Sie Klasse
someclass
haben einen Typ-parameter und verwenden, die für die Schnittstelle:Das ist nicht korrekt. Die Methode
somemethod
zurückgeben muss, einsomething<T>
.Müssen Sie auch erweitern Sie das interface mit einem generischen, wie:
public class someclass implements etwas {
öffentlichkeit etwas somemethod() {
...
}
}
Überschreiben einer Methode implementieren Sie eine Methode mit den gleichen Arten von paramenters und der gleiche Typ des Rückgabewerts.
String something(){}
wird überschrieben durch
String something(){}
aber NICHT mit
char[] something(){}
oderString something(int){}
So wie ich das verstehe, müssen Sie die Schnittstelle implementieren, etwas, können Sie dies auf einfache Weise: