4

我有一个通用的 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() 执行强制转换。我遇到了一个看似相关的空指针问题,所以我想清除它。

4

1 回答 1

11

您可以指定要在的泛型Link参数Card类型Card

class Card extends Link<Card>

这从分配Card给泛型类型参数。TLink

于 2013-04-25T22:18:01.503 回答