java - 抽象类的实现

标签 java

我有一个我想继承的抽象类:

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
}

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

最佳答案

问题出在您的第一个参数化类型:Object .

Object没有实现 Comparable<Object> ,因此 K extends Comparable<K>未通过您的 Object 验证K 的参数化.

另请注意,您的 iterator覆盖也应该被参数化!

abstract 的简单实现示例类将是:

public class MyFirstClassImpl<K, V> extends MyFirstClass<String, Object> {
    @Override
    public Iterator<MySecondClass<String, Object>> iterator() {
        // TODO
        return null;
    }
}

...作为String工具 Comparable<String> .

关于java - 抽象类的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38221566/

相关文章:

java - 如何将我在结果集中所做的更改转换为 java 中的 sql 查询?

java - 如何设置 BrowserField 以填充可用的屏幕空间?

java - Ignite 在 Docker 中运行(为 : General Java-Docker issue)

Java - 解析带有可选秒的日期

java - Pentaho 通过命令行运行作业

java - xcodebuild 打印了太多日志

java - GSON反序列化不带所有字段的json字符串

java - JSP 中自动省略空格

java - 按下 JButton 时 Swing 获取 JTextField

java - 当相机处于停止预览模式时保存图片