黑马程序员技术交流社区
标题:
Java接口怎么能实例化和运用抽象函数
[打印本页]
作者:
whocases
时间:
2012-6-23 16:07
标题:
Java接口怎么能实例化和运用抽象函数
本帖最后由 whocases 于 2012-6-24 21:55 编辑
Java接口怎么能实例化和运用抽象函数
Properties s=System.getProoperties();
Enumeration e=sp.propertyNames();
while(e.hasMoreElements())
{
…………
}
其中:Enumeration是接口,怎么可以实例化啊??
Enumeration的对象e怎么还可以调用 Enumeration里的抽象函数hasMoreElements()
作者:
张立江
时间:
2012-6-23 16:18
本帖最后由 小张童鞋 于 2012-6-23 16:20 编辑
Properties s=System.getProoperties();
Enumeration e=sp.propertyNames();
这两句是返回了一个实现了Properties和Enumeration 接口的类的对象,用s(或者e)来储存(或者接收)这个返回值; 这样不叫实例化,叫实现.实例化是new出来的.
s(或者e)作为他们相应接口的对象,当然可以调用他们接口的方法了
作者:
游洪波
时间:
2012-6-23 18:35
本帖最后由 游洪波 于 2012-6-23 18:37 编辑
对,楼上说的非常对,java中创建对象和实例化的关键就在于有没有NEW关键字,所以你上边的Enumeration e=sp.propertyNames(); 是对Enumeration 接口的一种实现,还有就是 接口的实现还可以这么写 :比如说我这有一个接口名字叫做 Person ,student 类 implements 了 Person这个接口。那么Person要使用时可以这么写
Person p=new Student();这是另一种方式 子类名=new 父类名();
顺便补充一下,你那个e调用的方法确实是Enumeration 这个接口里的抽象方法,但是sp.propertyNames();是Enumeration实现所以Enumeration里边的抽象方法是必须要被实现的,所以这边可以用 e去调用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2