为什么方法返回接口类型的对象?

时间:2018-02-04 09:22:33

标签: java interface inner-classes

我试图理解方式,界面如何工作。在做了一些研究之后,我发现接口用于指定一个类必须做什么。

我在外部类中实现了一个方法(first()),该方法将返回Position<E>实例的元素,但我感到困惑的主要问题是first()使用方法{{1从返回getNext()对象的Node类,为什么我能够返回Node<E>对象而不是Position<E>,我甚至可以从{{1}返回Node<E>对象方法。

Node<E>

外类方法

first()

2 个答案:

答案 0 :(得分:0)

由于Node<E>实现Position<E>Node<E>的每个实例也是Position<E>的实例(或者,确切地说,是实现{{{ 1}})。

因此,您可以在返回类型为Position<E>的方法中返回Node<E>的实例。

答案 1 :(得分:0)

  

为什么我能够返回Position对象而不是Node

因为,Position<E>实现了Node,这意味着PositionNode的一种类型。因此,Position可以包含任何实现它的类实例。在您的情况下,它是Position类,引用Node方法,返回getNext类型对象

Node