黑马程序员技术交流社区

标题: JDK API 中List 为滚动列表框 List<T>才是集合 为什么编译的... [打印本页]

作者: 刘圣繁    时间: 2013-2-20 23:07
标题: JDK API 中List 为滚动列表框 List<T>才是集合 为什么编译的...
JDK API 中List 为滚动列表框  List<T>才是集合  为什么编译的时候List l=new ArrayList();可以通过
作者: 张豪杰    时间: 2013-2-21 00:32
List是一个接口,而ArrayList 是一个类。 ArrayList 继承并实现了List。List list = new ArrayList();这句创建了一个List引用指向了ArrayList对象,就是多态了啊,此时ArrayList有但是List没有的属性和方法,它就不能再用了。而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。
比如下面代码就是实现接口多态
interface InterA  
{  
void fun();  
}  
//实现接口InterA的类B  
class B implements InterA  
{  
public void fun()  
{      
System.out.println(“This is B”);  
}  
}  
//实现接口InterA的类C  
class C implements InterA  
{  
public void fun()  
{      
System.out.println(“This is C”);  
}  
}  
class Test  
{  
public static void main(String[] args)  
{  
InterA  a;  
a= new B();  
a.fun();   
a = new C();   
a.fun();   
}  
}

输出结果为:

This is B

This is C

上例中类B和类C是实现接口InterA的两个类,分别实现了接口的方法fun(),通过将类B和类C的实例赋给接口引用a而实现了方法在运行时的动态绑定,充分利用了“一个接口,多个方法”展示了Java的动态多态性。




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