我有一个带有'update()'成员函数的基础'node'类
现在我有其他类扩展'node'类并覆盖'update'类。
但是我的所有节点都存储在一个数组中(类型为'node'),并且它们都会'依次更新'。
问题是它调用基节点类更新而不是我的覆盖函数。
我做错了什么? (我有@Override和函数名称相同,返回类型并且具有相同的参数)
EDIT OMG SORRY我正在编辑备份文件。现在工作。 SORRY SORRY
答案 0 :(得分:0)
您应声明派生类型的数组
我的理解是:
Node[] array = {new node1, new node2}
你应该:
Node[] array = {new derived, derived}
问题的关键是实例化派生类型的对象,但将它们视为节点。
例如
void foo (Node node){
node.update()
}
bar(){
foo (new Node())
foo (new Derived())
}
答案 1 :(得分:-1)
在调用该函数之前,请尝试检查节点子类型和强制转换。