哪位大哥能帮我解释下返回一个接口什么意思啊

哪位大哥能帮我解释下返回一个接口什么意思啊,第1张

你是不明白接口和类的区别吧
接口相当于一种模式,你可以把它当作一种类的框架,因为如果你定义的一个类实现了这一个接口,你就必须按这个接口的规范来做事,这里最主要的体现就是方法上。Java中的接口定义了一系列的方法声明,这里仅仅是方法声明,它要求所有实现它的类必须提供这些方法的定义。
那么这样做有什么好处呢,首先要知道的是接口可以用来声明一个变量,记住这里也是声明,他声明的变量就要满足前面说到的该接口制定的规范,然后再把一个实现了该接口的类的实例赋给这个变量,这个变量就成了代表接口规范的一个实例,也就能发挥该接口的功能了。
以上是纯理论说明,在这里就拿你的这个例子来说:Service是一个接口(interface)它定义了一个规范,也就是所有实现它的类必须要给我提供method1(),method2()的详细定义(在接口类叫声明,定义就是给出一种具体的处理过程),这里Implemetation就实现了这个接口并给出了两个方法的定义。同理ServiceFactory(Service工厂)接口也定义了一个规范,而实现它的类ImplemetaionFactory也满足了该规范,即给出了getService()方法的定义。
好了你这里不明白他为什么能返回一个接口,正如前面所说的接口可以用来声明变量,该变量代表了该接口的规范,而实现接口的类的实例满足该规范,所以能把这个实例赋给变量。所以以下代码是正确的:
Service s;//声明接口变量
Implementation i=new Implementation();//创建一个实现类的实例
s=i;//把这个实例赋给它实现的接口的变量。
这跟Service getService(){return new Implementation();}是同样的道理了,没法再讲得更细了。


DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
乐在赚 » 哪位大哥能帮我解释下返回一个接口什么意思啊

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情