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中抽象方法的实现
}
谢谢!这就是我要找的!我需要子类也是泛型的:)