Meine Frage ist sehr spezifisch. Ich arbeite mit einer Eltern- und einer Kindklasse. Ich arbeite mit bestimmten gegebenen Anweisungen und ich überschreibe die indexOf() -Methode von der Elternklasse in der Kindklasse. Wenn der Parameter das Klassenobjekt eines Parents ist, geben den indexOf() - Wert der Elternklasse basierend auf dem Parameterwert zurück. Wenn der Parameter ein String-Objekt ist, geben den indexOf() - Wert der Elternklasse zurück, wenn das Klassenobjekt eines Parents vom String-Parameter übergeben wird.Übergeordnete/untergeordnete Klassenbeziehung - indexOf
Die fett gedruckten Teile sind, was ich nicht bekomme. Dies ist das erste Mal, dass ich mit so etwas arbeite, also bin ich mir nicht sicher, wie ich es angehen soll. Das habe ich bisher:
public class KillList extends LinkedList<AssassinNodeData> {
public int indexOf(Object data) {
if (data instanceof AssassinNodeData) {
return .....
} else if (data instanceof String) {
return ....
} else
return -1; // under all other circumstances
// circumstance to indicate parameter is not of current class
}
}
Irgendwelche Vorschläge oder Lösungen wären wunderbar!
Zum Thema Eltern/Kind-Klasse. Da ich mit LinkedList erweitere anstatt nur die Superklasse zu erweitern - gibt es eine spezielle Art, wie ich auf die Getter/Setter-Methoden der Superklasse zugreife?
Hier ist ein Beispiel für was ich arbeite. Der Compiler gibt mir das „Can not Symbol suchen“, und dass die Lage der Getter-Methode ist in der Unterklasse, aber nicht die übergeordnete Klasse:
@Override
public String toString() {
return getKiller() + "is stalking" + getPlayer();
}
Ich sehe! Ist es erforderlich, String-Typ über Daten in der zweiten Bedingung zu werfen? – Ani
@Ani Wenn Sie keinen Konstruktor haben, der ein 'Object' als Parameter annehmen kann, ist casting notwendig, um einen Kompilierungsfehler zu vermeiden. – 4castle
Vielen Dank! :) Ich werde es überprüfen – Ani