黑马程序员技术交流社区
标题:
泛型和多态的关系。。。
[打印本页]
作者:
黑马任雪刚
时间:
2012-7-4 18:42
标题:
泛型和多态的关系。。。
本帖最后由 黑马任雪刚 于 2012-7-4 23:28 编辑
这两种方法有什么区别呢???
//泛型方法。
class Demo
{
public <T> void method(T t)
{
System.out.println(t);
}
}
//多态的应用。
public static void sop(Object obj)
{
System.out.println(obj);
}
作者:
杨锦
时间:
2012-7-4 19:12
泛型就是类型参数化, 好处是编译器会检查参数类型.
多态就是多个类由继承(实现接口)得到的一致外观, 好处是简化代码, 隔绝修改
作者:
万宝东
时间:
2012-7-4 19:19
//泛型方法。
class Demo
{
public <T> void method(T t)
{
System.out.println(t);
}
}
这个例子,定义了泛型,将参数指定为T,这就把程序运行时才可能出现的错误放到了编译时出现,如果传的参数不对, 在程序编译时就会展现出来,有利于程序员修改程序。
public static void sop(Object obj)
{
System.out.println(obj);
}
这个例子在程序编译时,是不会报错的,只有程序运行时,如果传入的参数不对,才会报错。
作者:
whocases
时间:
2012-7-4 20:36
泛型是java1.5之后引入的一个特性,可以用限制传入参数的类型,比如:ArrayList<String> a=new ArrayList<String>();那a中就只能就能放入String 类型的字符串!
多态意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。比如方法的重载和覆写!
作者:
周刚
时间:
2012-7-4 20:50
可以说泛型是更好的多态。在jdk1.5之前没有泛型,我们如果想通过多达实现代码的重用,通常按你写的一样,以最宽泛的
对象Object为参数传入,但毕竟我们传入的通常不是Object不是一个具体的子类,比如Student,所以在代码内部如果
想要使用Student对象特有的方法,如getName(),就不得不对传入的参数进行强烈类型转换Student stu = (Student)obj;
stu.getName()...
而如果使用了泛型,预先就声明传入的将是什么类型的参数,在内部得到参数时就不用强制类型转换了。这样很方便,提高
了代码效率。
更重要的一条是,泛型能将可能出现的错误提前到编译阶段就暴露出,这样就能更早地解决错误。不至于造成不好的用户体验!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2