【发布时间】:2016-11-21 14:12:07
【问题描述】:
我没有看到界面的使用, 为什么我们不能直接在Node类中直接实现getElement()方法呢?
public interface Position <T> {
public T getElement();
}
特此为 SNODE 类:
public class SNode<T> implements Position<T> {
private T element;
private SNode<T> next;
public SNode(T e, SNode<T> n) {
element = e;
next = n;
}
public SNode<T> getNext() {
return next;
}
public void setNext(SNode<T> next) {
this.next = next;
}
public void setElement(T element) {
this.element = element;
}
@Override
public T getElement() {
return element;
}
}
【问题讨论】:
-
为什么需要这样做?
-
如果只看类的声明/定义,那么你将看不到接口的使用。另一方面,在客户端代码中,您可以将
SNode传递给以Position作为参数的方法。然后你会看到接口的“使用”,因为SNode被“使用”为Position。 -
其实可以的。在java中你只能有1个超类,但你可以实现你想要的所有接口。如果您的案例以一个可以返回当前元素的 Node 类结束,则可以。
-
您的问题的答案取决于如何使用此代码。
标签: java list linked-list singly-linked-list