我的问题很具体。我和父母和孩子一起工作。我正在处理特定的指令,并且我要从子类的父类重写indexOf()方法。如果参数是父类对象,则根据参数值返回父类的indexOf()值。如果参数是String对象,返回父类的indexOf ()传递从字符串参数创建的父类对象时的值。
粗体部分是我没有得到的。这是我第一次使用这种东西,所以我不确定如何处理它。这就是我到目前为止所做的:
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
}
}
任何建议或解决方案都会很精彩!
关于父/子课的主题。由于我使用LinkedList进行扩展而不是仅仅扩展超类 - 是否有一种特殊的方式可以从超类中访问getter / setter方法?
这是我正在做的事情的一个例子。编译器给了我&#34;找不到符号&#34;并且getter方法的位置在子类中,但不在超类中:
@Override
public String toString() {
return getKiller() + "is stalking" + getPlayer();
}
答案 0 :(得分:3)
您需要在此处使用super
关键字来访问父级indexOf
:
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;
}
}