我有这个抽象类,我想从中继承:
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
}