Java 如何向方法传递列表<;界面>;而不是列表<;类别>;?

Java 如何向方法传递列表<;界面>;而不是列表<;类别>;?,java,oop,collections,interface,Java,Oop,Collections,Interface,我有一些实现公共接口的对象。假设我有苹果和其他一些水果,它们实现了HasSeed,并返回它们的种子数 然后我有了一个服务方法,在这里用一个addAll(List)类将其称为FruitProcessor。我想我可以传入一个实现HasSeed接口的对象列表,比如苹果列表 但我不能,编译器抱怨它不适用于参数。 还有一件事:我不能将列表更改为列表。但是我需要在我的水果处理器中有一个方法,它可以获取任何对象列表,然后调用getSeeds(),不管它是什么对象 我如何适应以下情况 class Fruit {

我有一些实现公共接口的对象。假设我有
苹果
和其他一些
水果
,它们实现了
HasSeed
,并返回它们的种子数

然后我有了一个服务方法,在这里用一个
addAll(List)
类将其称为
FruitProcessor
。我想我可以传入一个实现
HasSeed
接口的对象列表,比如苹果列表

但我不能,编译器抱怨它不适用于参数。 还有一件事:我不能将
列表
更改为
列表
。但是我需要在我的水果处理器中有一个方法,它可以获取任何对象列表,然后调用
getSeeds()
,不管它是什么对象

我如何适应以下情况

class Fruit {};
class Apple extends Fruit implements HasSeed {
   @Override
   int getSeeds() {
       return 5; //just an example
   }
}

class FruitProcessor {
    static void addAll(List<HasSeed> list) {
        for (HasSeed seed : list) {
            Sysout("the fruit added contained seeds: " + list.getSeeds());
        }
    }
}

class FruitStore {
    List<Apple> apples;
    FruitProcessor.addAll(apples); //The method addAll(List<HasSeed>) in the type FruitProcessor is not applicable for the arguments (List<Apple>)
}
class水果{};
苹果类扩展了水果类{
@凌驾
int getSeeds(){
return 5;//只是一个示例
}
}
类处理器{
静态void addAll(列表){
用于(HasSeed种子:列表){
Sysout(“添加的水果包含种子:+list.getSeeds());
}
}
}
高级水果店{
列出苹果;
FrootProcessor.addAll(Apple);//类型FrootProcessor中的方法addAll(List)不适用于参数(List)
}

您必须使用
列表使用
静态void addAll(列表
私有列表doSomething(列表arg)
?为什么它不起作用?