【发布时间】:2013-11-23 13:29:49
【问题描述】:
我有一个带有抽象方法“Action”的抽象类
public abstract class BaseAnt {
public BaseAnt(String name, int food, int water) {
/.../
}
public abstract void action ();
}
类工作者扩展它:
public class WorkerAnt extends BaseAnt {
public WorkerAnt() {
/.../
}
public void action() {
AppStat.FOOD += mAge*0.1 + 10;
}
}
我正在尝试制作循环
public ArrayList<BaseAnt> antsArray;
for (int i = 0; i < AppStat.antList.size(); i++) {
if (AppStat.antList.get(i).getName() == "Worker") {
AppStat.antList.get(i).action();
}
}
但是我不能调用方法动作!如何解决?
错误:
BaseAnt 类型的方法 action() 未定义
【问题讨论】:
-
“我不能打电话”是什么意思?你得到一个编译错误?运行时是否出现异常?该方法根本没有被调用吗?
-
"BaseAnt 类型的方法 action() 未定义"
-
您在本应有
.equals("Worker")时却写了== "Worker"却犯了一个错误。但是,这不是您的编译器错误的原因。 -
首先,您的比较有缺陷,这就是我所指的。至于未定义的方法,到目前为止我看到的唯一解释是您使用的是不同的 BaseAnt 类,并且存在导入问题。
标签: java android abstract-class