【发布时间】:2011-12-03 19:28:40
【问题描述】:
我正在尝试让一个类正确实现一个接口,但似乎遇到了障碍。我不确定我已经编写的代码是否正确,但这是我理解如何处理任务的唯一方法。我已经获得了一个包含这些信息的界面:
package mvcchords;
public interface NoteStore {
int getNextNote();
boolean hasNextNote();
void noteAdded(int midicode);
void start(int sortOrder);
}
应用程序显示允许用户单击它们的钢琴键,并保存它们被单击的顺序和特定声音的音符的 midicode。然后,当用户单击播放时,它会按照保存音符的顺序调用曲调。当用户单击注释时,会调用 noteAdded。 hasNextNote 用于检查是否是已保存笔记的结尾。 getNextNote 用于从数组列表中获取下一个音符,start 在用户单击播放按钮时被调用。我被告知整数sortOrder 与这部分任务无关。有人告诉我,当点击播放按钮时,它应该调用start 方法,然后重复调用getNextNote 方法,直到检索到所有音符。
下面是我目前为实现这个接口的类编写的代码;
import java.util.*;
import mvcchords.*;
public class MyNoteStore implements NoteStore {
public ArrayList<Integer> Notes;
public void noteAdded(int midicode) {
Notes.add(midicode);
}
public boolean hasNextNote(int k) {
if(Notes.get(k) != null)
return true;
else
return false;
}
public int getNextNote(int k) {
if(hasNextNote(Notes.get(k)) == true)
return Notes.get(k);
else
return 0;
}
public void start(int sortOrder) {
for(int k = 0; k < Notes.size(); k++){
hasNextNote(k);
getNextNote(k);
}
}
}
这段代码给了我一个错误提示
MyNoteStore is not abstract and does not override abstract method `hasNextNote()` in `mvcchords.NoteStore`.
我不知道从这里去哪里,如果有任何帮助,我将不胜感激。如果需要更多信息,我会尽力澄清我提出的任何观点。
提前谢谢你:)
【问题讨论】:
标签: java class interface overriding abstract