好像当我有一个实现接口的抽象类时,该接口不会被扩展我的抽象类的主类拾取:

当我使用这个:

public abstract class MusicIntCollection implements Iterator<Integer>{...}


我无法遍历StepIndexCollection的实例:

public class StepIndexCollection extends MusicIntCollection{...}


但是,当我创建这个时:

public class StepIndexCollection extends MusicIntCollection implements Iterator<Integer>{...}


...我可以遍历StepIndexCollection的实例。

这是我要迭代的方式:

this.notes = new StepIndexCollection();
    for (int i : o.notes()) {
        this.notes.add(i);
    }


有没有一种方法可以使它在抽象类中起作用,所以扩展我的MusicIntCOllection的所有特定类类型也不必实现该接口?

最佳答案

您正在实现Iterator接口,而不是Iterable接口。如果您使类实现Iterable,则可以使用增强的for循环语法。

08-28 23:42