网站建设下传与模板/泛型

使用容器的时候,只要把对象的reference直接放进去,用的时候再请出来就是了。但是,由于容器只能持有object,所以当你往容器里边放reference的时候,它就被上传给了object,于是就把自己的身份给丢了。当你把它提出来之后,你得到的是object的reference,而不是那个你放进去的东西。这里又要用到类型转换了,但这次不是顺着继承关系上传给一个更一般的类型。相反,你得沿着继承图向下传给一个更为具体的类型。这种方式称为下传。

如果下传出错的话,你就会得到一个叫做异常运行错误。我们很快就会讲什么是异常,所以只懂如何从容器提取出对象的reference还不够,你还必须记得它们是什么类型的,这样才能进行正确的下传。

下传所需的运行时检查会引起程序运行效率的降低,同时也加重了编程的负担。解决的方案就是被称为参数化类型的机制。参数化类型是一种能够根据需要由编译器自动指派类型的类。参数化类型是C++的重要特性,部分原因是因为它没有一个统一的继承体系。目前Java没有参数化类型,可能是因为设计师们认为,用单根继承体系可以做到这个效果。

留言列表

发表留言:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。