码迷,mamicode.com
首页 > 其他好文 > 详细

14章.类型信息(1)

时间:2016-04-08 06:31:56      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

运行时类型信息使得你可以在程序运行时发现和使用类型信息。

java在运行时识别对象和类的信息有两种方式:(1)“传统的”RTTI,它假定我们在编译时已经知道了所有的类型;(2)“反射”机制,它允许我们在运行时发现和使用类的信息。

一、为什么需要RTTI(Run-Time-Type-Information)

面向对象编程的基本目的是:让代码只操纵基类的引用,这样如果要在基类下面添加新类时,不会影响原来的代码。

例如:

技术分享

图中的动物是基类,位于顶部,派生类向下扩展。

先看一下,如果我们不操纵基类,会有什么后果?

如果我们写代码操纵的不是动物基类,而是动物下的具体的动物派生类,如:长颈鹿等,势必会导致我们的代码一遍一遍的改变。因为长颈鹿的跑绝不等同于花豹的跑,当你想让花豹跑时,你得改变长颈鹿的跑,如此以来,我们面向对象编程的目的就达不到了。

那么怎样才能算是面向对象编程?

我们只需要操纵动物中动态绑定的跑行为,这样在具体的动物中再去具体覆盖跑行为即可。这样真正运行时,其实运行的是派生类中具体的跑行为。我管这一招叫“瞒天过海”。

 

代码举例如下:

 

14章.类型信息(1)

标签:

原文地址:http://www.cnblogs.com/luxun/p/5366366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!