Lasst uns sagen, dass wir innere Klasse haben (Rest des Codes ist nicht wirklich wichtig, ich denke, DataStructureIterator
nur die Schnittstelle von java.util.Iterator<Integer>
erweitert ist):Java-Schnittstelle vs Klasse als Rückgabetyp
private class EvenIterator implements DataStructureIterator
.
Jetzt wollen wir eine Methode erstellen, die eine neue Instanz von EvenIterator zurückgibt. Als ich bemerkte, können wir es auf verschiedene Weise tun:
public EvenIterator getEvenIterator(){return new EvenIterator();}
public DataStructureIterator getEvenIterator() {return new EvenIterator();}
Ich fand heraus, dass beide Versionen des Codes gut kompiliert, aber ich kann es einfach nicht, was der Unterschied ist (wenn es welche gibt) zwischen ihnen und welche Version sollte verwendet werden.
Dies ist ein Kernprinzip der OOP. Sie können Bücher, Blogposts, Videos und mehr finden, die diese Frage ausführlicher beantworten, als Sie jemals wünschen könnten. Versuchen Sie "Polymorphismus" zu suchen. – Sam
@Sam Ich lerne aus dem Orakel-Tutorial und der Polymorphismus-Teil war noch nicht, so wie ich Beispiele analysierte, konnte ich es nicht bekommen. Ich werde darüber lesen, danke! – Kubekk