2 votes

Relation de classe parent/enfant - indexOf

Ma question est très spécifique. Je travaille avec une classe parent et une classe enfant. Je travaille avec des instructions spécifiques données et je dois remplacer la méthode indexOf() de la classe parent dans la classe enfant. Si le paramètre est un objet de la classe parent, retournez la valeur de indexOf() de la classe parent basée sur la valeur du paramètre. Si le paramètre est un objet String, retournez la valeur de indexOf() de la classe parent lorsqu'un objet de la classe parent est créé à partir du paramètre de type string.

Les parties en gras sont ce que je ne comprends pas. C'est la première fois que je travaille avec ce type de chose donc je ne suis pas sûr de comment m'y prendre. Voici ce que j'ai jusqu'à présent :

public class KillList extends LinkedList {

public int indexOf(Object data) {
    if (data instanceof AssassinNodeData) {
        return .....
    } else if (data instanceof String) {
        return ....
    } else 
        return -1; // sous toutes les autres circonstances  
                   // circonstance pour indiquer que le paramètre n'est pas de la classe actuelle 
}
}

Toutes suggestions ou solutions seraient les bienvenues !

En ce qui concerne la classe parent/enfant. Comme j'étends avec LinkedList au lieu d'étendre simplement la superclasse - y a-t-il une manière particulière d'accéder aux méthodes getter/setter de la superclasse ?

Voici un exemple sur lequel je travaille. Le compilateur me donne "Cannot Find Symbol" et indique que l'emplacement de la méthode getter est dans la sous-classe, mais pas dans la superclasse:

@Override
public String toString() {
    return getKiller() + " suit " + getPlayer(); 
}

3voto

4castle Points 20341

Vous devez utiliser le mot-clé super ici pour accéder à la méthode indexOf du parent :

public int indexOf(Object data) {
    if (data instanceof AssassinNodeData) {
        return super.indexOf(data);
    } else if (data instanceof String) {
        return super.indexOf(new AssassinNodeData((String)data));
    } else {
        return -1;
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X