java为什么要使用接口回调-爱代码爱编程
也许你在编程的过程中会发现这样一行代码:格式如:
接口 接口变量 = new 接口 子类();
Link<String> link = new ArrayList<String>();
//Link为一个接口 ArrayList为一个泛型类
那么为什么前面要用接口引用new 出来的对象呢?
可以告诉你的是,这是接口的回调,是接口多态的一种方式。
但是为什么要这样使用呢?其优点在哪里?有什么缺点?
在回答之前,我先介绍一下接口相关内容。
**
接口是java一种重要的数据类型,用接口声明的变量称为接口变量,接口属于引用型变量,接口变量中可以存放实现该接口的类的实例的引用,即存放对象的引用。
**
下面举例说明为什么要这麽使用:
//1.Collection co = new ArrayList();
//2.ArrayList co = new ArrayList();
我们一般情况下使用的是第二种方法,如果使用第一种方法会导致co中没有ArrayList的方法,但是这样的话,便可以屏蔽具体的方法的实现,换而言之,只需要知道co做什么,而不是怎么做。如果有一天ArrayList换成了另一种的实现如anotherlist呢,我们第一种方法只要修改new的地方,对象co还能继续使用,然而第二种便不能了。如果只有一种实现,那么接口便没有存在的必要,接口本身就是为了多实现而存在的。