用JAVA接口声明一个变量是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/13 09:50:56
比如List l = Arrays.aslist(objs) 一个接口变量可以存些什么数据呢?

不是接口变量,而是一个接口类型的引用指向了一个实现给接口的对象,这是java中的一种多态现象
java中的接口不能被实例化,但是可以通过接口引用指向一个对象,这样通过接口来调用方法可以屏蔽掉具体的方法的实现,这是在JAVA编程中经常用到的接口回调,也就是经常说的面向接口的编程

List l = Arrays.aslist(objs) 之种方式相当有用
我们可以这样看

比如我写学籍管理系统
我们需要生成 学号 在程序开发过程中我们并不知道 生成ID的具体方式
那么我就写一个接口 ICreateNo 中有一方法 createNo();
我们在开发阶段首先 写一个按自己思路实现的类 class MyCreateNo implement ICreateNo 我们实现一个 createNo(); 方法,
之后我们可以跟据 现实情况需求 重新实现 其它的 生成方式,, 但是这样的情况我们不必更改 ICreateNo 接口,,
而这种重新组织的方式, 我们可以利用当前流行 的 IOC 框架来实现,这种方式是相当有用的.

这是Java的多态性一种体现,虽然接口是不能实例化成对象的,但是可以声明接口引用,而把这个引用赋一个对象,这个对象和接口之间是直接或间接实现的关系。

这确实是多态的体现,不过看具体情况细化些好.