如何扩展抽象通用抽象接口?

时间:2017-10-31 23:35:13

标签: java generics interface abstract

现在,我正在尝试实现导入的Java抽象接口。它是一个简短的界面如下:

public interface USet<T> extends Iterable<T> {
    public int size();
    public boolean add(T x);
    public T remove(T x);
    public T find(T x);
    public void clear();
}

我正在尝试将此接口USet与整数一起使用。在我自己的班级中,我试图扩展这个类(因为我不能调用它,因为它是抽象的)如下:

public class Bag extends USet<Integer>{
    public int size();
    public boolean add(T x);
    public T remove(T x);
    public T find(T x);
    public void clear();
}

基本上,我真的需要在USet中使用函数(通过调用(我不认为我可以使用抽象接口)或扩展)。但是,当我尝试使用Integer将其扩展为泛型时,我遇到了错误。这是一个剧本错误吗?

1 个答案:

答案 0 :(得分:1)

你必须实现一个接口,在这种情况下,类中的类型将是Integer,而不是通用类型。

在实现界面时,您还必须添加一个正文。

你的Bag类看起来应该是这样的:

public class Bag implements USet<Integer> {

@Override
public Iterator<Integer> iterator() {
    // TODO Auto-generated method stub
    return null;
}

@Override
public int size() {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public boolean add(Integer x) {
    // TODO Auto-generated method stub
    return false;
}

@Override
public Integer remove(Integer x) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public Integer find(Integer x) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void clear() {
    // TODO Auto-generated method stub

}


}

更新:正如stav-saad提到的那样,只有在实现(创建方法和正文)接口的每个方法后才能正确实现接口。