Java接口以参数作为另一个接口

App*_*pps 1 java interface

我有一个像Java这样的界面

    public interface Filter{
        public boolean acceptData(IFilterData data);
    }

    public interface IFilterData{

    }
Run Code Online (Sandbox Code Playgroud)

为什么Java不允许我拥有如下所示的实现类?

public class SampleFilterImpl{
    public boolean acceptData(SampleFilterData data){ 
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

哪里 SampleFilterData implements IFilterData

我同意Filter接口指定的合同对吗?但是为什么它不允许我这样做的逻辑是什么?

SLa*_*aks 10

我同意Filter接口指定的合同对吗?

不.

该接口允许调用者传递任何实现IFilterData.

您的班级只接受一个特定的实施.