实现嵌入在接口

时间:2016-01-16 08:46:13

标签: java interface implementation

假设我有一个嵌入了类的接口(目的是这个接口必须提供'type'。接口有一些方法使用'type'。所以,在文件S.java中,我有< / p>

public interface S {
    public class SType
    {
    }

    public abstract void f( SType a ); 
}

我想在文件SS.java中实现这个接口,我试试这个:

public final class SS implements S
{
    public class SType extends java.util.HashSet<Integer>
    {
    }

    public void f( SType a )
    {
        // ...
    }
}

但是,当我尝试编译这些文件(“javac S.java SS.java”)时,我得到通常的错误消息“SS不是抽象的,并且不会覆盖S中的抽象方法f(SType)”,表示具体类中的“f()”不是接口中“f()”的正确实现。为什么呢?

1 个答案:

答案 0 :(得分:1)

尝试:

public final class SS implements S{


    public class SType extends java.util.HashSet<Integer>
    {
    }

    public void f(S.SType a) {
        // ..
    }
}

编辑:

也许,你需要这个:

public interface S<SType> {
    public void f( SType a ); 
}

public final class SS implements S<HashSet<Integer>> {

    public void f(HashSet<Integer> a ){
        // ...
    }
}