假设我有一个嵌入了类的接口(目的是这个接口必须提供'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()”的正确实现。为什么呢?
答案 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 ){
// ...
}
}