黑马程序员技术交流社区

标题: 接口能有变量吗? [打印本页]

作者: 郝亚平    时间: 2011-11-23 17:39
标题: 接口能有变量吗?
本帖最后由 郝亚平 于 2011-11-23 17:56 编辑

《Java Language Specific》中看到这么一句话:
A variable of an interface type can hold a null reference or a reference to an instance of any class that implements the interface.

”A variable of an interface“,恩,这个激发了自己的遐想,接口是不是也可以直接声明变量呀?
自己是没见过。请问下。
作者: 崔浩    时间: 2011-11-23 17:46
接口变量被赋值于子类实现的对象
好比在定义方法的时候可以是接口的变量,在实际调用的时候,传入子类的对象。
集合中也是有很多的,List list=new ArrayList();声明了一个List接口类型的变量,但是赋值了ArrayList实现类的子类的对象
作者: 郝亚平    时间: 2011-11-23 17:56
崔浩 发表于 2011-11-23 17:46
接口变量被赋值于子类实现的对象
好比在定义方法的时候可以是接口的变量,在实际调用的时候,传入子类的对 ...

Yes。Thanks.好。
作者: 颜小飞    时间: 2011-11-23 22:15
接口是可以直接声明为变量的,但在为它赋值时必须为实现了该接口的类。{:soso_e100:}
作者: 程佳佳    时间: 2011-11-24 10:36
接口不能直接实例化,接口变量必须指向实现所有接口方法的类对抽象类要被子类继承,接口要被类实现。
接口只能做方法申明,接口里定义的变量只能是公共的静态的常量.
作者: 郝亚平    时间: 2011-11-24 12:33
颜小飞 发表于 2011-11-23 22:15
接口是可以直接声明为变量的,但在为它赋值时必须为实现了该接口的类。 ...

very good answer。好。
作者: 郝亚平    时间: 2011-11-24 12:40
程佳佳 发表于 2011-11-24 10:36
接口不能直接实例化,接口变量必须指向实现所有接口方法的类对抽象类要被子类继承,接口要被类实现。
接口 ...

好。谢谢回复。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2