我有这个抽象类,我想从中继承:

public abstract class MyFirstClass<K extends Comparable<K>, V> implements Iterable<MySecondClass<K, V>>
{
     // Abstract methods
}

我不太确定如何编写扩展该抽象类的类的声明。我想到了类似的东西:
public class MyFirstClassImpl<K, V> extends MyFirstClass<Object, Object>
{
    @Override
    public Iterator iterator()
    {
        // Code
    }

    // Implementation of abstract methods from MyFirstClass
}

但是它似乎没有那样的工作,我很难找到对这种问题的解释。

最佳答案

如果子类也应该是通用的,则它应该具有与基类相同的通用参数声明:

public class MyFirstClassImpl<K extends Comparable<K>, V> extends MyFirstClass<K,V>
{
    @Override
    public Iterator<MySecondClass<K, V>> iterator()
    {
    // Code
    }
}

否则,您的子类完全不应具有任何泛型类型参数:
public class MyFirstClassImpl extends MyFirstClass<SomeClassThatImplementsComparable, Object>
{
    @Override
    public Iterator<MySecondClass<SomeClassThatImplementsComparable,Object>> iterator()
    {
        // Code
    }

    // Implementation of abstract methods from MyFirstClass
}

09-28 04:11