大多数面向对象的语言都支持RTTI。
在Java中,RTTI表现在:
1。Class对象,是RTTI的核心,每个类都有一个class对象。每当编写并且编译一个新类,就会产生一个Class对象(被保存在同名的.class文件当中)
2。instanceof 关键字用于检查对象是不是某个特定类型的实例。
3。强制类型转换,如:
Parent object = new Child();
Child child = (Child)object;
至于实现机制,根据JVM实现的不同,没有固定的答案。
不是
在JAVA中类实例的引用也能够就是指向一个handle的指针,而该handle其实就是以对指针:一个指针指向表,表格包含了对象的方法列表以及一个指向类对象(表示对象类别)的指针;另一个指针指向一块内存地址,该内存是从Java堆中为对象的数据而分配出来的。
RTTI 程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。
自己看着办吧。
多态是RTTI之前的东西。。
JAVA,C++,DELPHI。。。。这些语言实现的多态,都不是依赖RTTI。
java的多态是面向对象特征之一
重载 和 重写 是java多态的两种表现形式