【发布时间】:2018-02-04 09:22:33
【问题描述】:
我正在尝试了解界面的工作方式。经过一番研究,我发现接口是用来指定一个类必须做什么的。
我在外部类中实现了一个方法(first()),它将返回 Position<E> 实例的元素,但我感到困惑的主要一点是,first() 使用了来自 Node 类的方法 getNext(),它返回 @ 987654325@ 对象,那么为什么我能够返回Position<E> 对象而不是Node<E>,我什至可以从first() 方法返回Node<E> 对象。
private static class Node<E> implements Position<E> {// Inner Class
private E element;
Node<E> previous;
Node<E> next;
Node(E element, Node<E> previous, Node<E> next) {
this.element = element;
this.previous = previous;
this.next = next;
}
@Override
public E getElement() throws IllegalStateException {
if (next == null)
throw new IllegalStateException("Position no longer valid");
return element;
}
private Node<E> getNext() {
return next;
}
}
外部类方法
@Override
public Position<E> first() {
return header.getNext();
}
【问题讨论】:
标签: java interface inner-classes