我有一个我想继承的抽象类:
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/