通常这种情况实际上是返回实现这个接口的类的向上转型回去的reference
而不是纯粹返回一个接口,这样就能接收不同种类的实现的这个接口的类

解决方案 »

  1.   

    这种用法就是体验多态性的具体用法。方法签署上指定的返回类型是一个接口,而真正返回的是一个实现了这个接口的具体的类的实例。这样在调用该方法的时候我们就不用考虑到底是具体哪个类的实现了。 我们只管用这个接口上的方法就行。 实际上是在用它真正返回的具体的对象的方法。  想怎么实现就取决于到底返回的是哪个具体的实例。而调用都根本不用去管