Java 抽象类的实现

Java 抽象类的实现,java,Java,我有一个要从中继承的抽象类: public abstract class MyFirstClass<K extends Comparable<K>, V> implements Iterable<MySecondClass<K, V>> { // Abstract methods } 公共抽象类MyFirstClass实现了Iterable { //抽象方法 } 我不确定如何编写扩展这个抽象类的类的声明。我想到了这样的事情: publ

我有一个要从中继承的抽象类:

public abstract class MyFirstClass<K extends Comparable<K>, V> implements Iterable<MySecondClass<K, V>>
{
     // Abstract methods
}
公共抽象类MyFirstClass实现了Iterable
{
//抽象方法
}
我不确定如何编写扩展这个抽象类的类的声明。我想到了这样的事情:

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

    // Implementation of abstract methods from MyFirstClass
}
公共类MyFirstClassImpl扩展了MyFirstClass
{
@凌驾
公共迭代器迭代器()
{
//代码
}
//MyFirstClass中抽象方法的实现
}

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

问题在于您的第一个参数化类型:
对象

对象
未实现
可比
,因此
K扩展可比
未通过
对象
K
进行参数化验证

还要注意,您的
迭代器
覆盖也应该参数化

抽象类的简单实现示例如下:

public class MyFirstClassImpl<K, V> extends MyFirstClass<String, Object> {
    @Override
    public Iterator<MySecondClass<String, Object>> iterator() {
        // TODO
        return null;
    }
}
公共类MyFirstClassImpl扩展了MyFirstClass{
@凌驾
公共迭代器迭代器(){
//待办事项
返回null;
}
}

。。。由于
String
实现了
compariable

如果子类也应该是泛型的,那么它应该具有与基类相同的泛型参数声明:

public class MyFirstClassImpl<K extends Comparable<K>, V> extends MyFirstClass<K,V>
{
    @Override
    public Iterator<MySecondClass<K, V>> iterator()
    {
    // Code
    }
}
公共类MyFirstClassImpl扩展了MyFirstClass
{
@凌驾
公共迭代器迭代器()
{
//代码
}
}
否则,子类不应具有任何泛型类型参数:

public class MyFirstClassImpl extends MyFirstClass<SomeClassThatImplementsComparable, Object>
{
    @Override
    public Iterator<MySecondClass<SomeClassThatImplementsComparable,Object>> iterator()
    {
        // Code
    }

    // Implementation of abstract methods from MyFirstClass
}
公共类MyFirstClassImpl扩展了MyFirstClass
{
@凌驾
公共迭代器迭代器()
{
//代码
}
//MyFirstClass中抽象方法的实现
}

谢谢!这就是我要找的!我需要子类也是泛型的:)