我有一个通用的Link类(用于实现链表),如下所示:
class Link<T> {
protected T next;
public T getNext() { return next; }
public void setNext(T newnext) { next = newnext; }
} // end class Link
现在,我希望另一个名为Card的类继承此。
class Card extends Link {
...
}
但是,我希望它为getNext()返回一个Card对象。我该怎么做?
最初,Link类不是通用的,但每次我想使用它时,我都必须在getNext()上执行强制转换。我有一个看似相关的空指针问题,所以我想清除它。
答案 0 :(得分:11)
您可以在Link
中指定Card
的通用参数类型为Card
:
class Card extends Link<Card>
这会将Card
从T
分配给通用类型参数Link
。