运行期类型识别?RTTI?
假如我们有一个基类的引用,这个引用也可以作为子类的引用嘛,现在我们想知道这个引用的类型到底是啥?
当从子类到基类之后有很多的信息都会丢失掉,比如有一个人类的对象可以看成普遍意义上的一个对象,因此也可以往上变为对象,但是我们就不会知道这个对象是不是人了。
RTTI正是在运行期间,识别对象的类型。
遇到特殊的程序设计问题,需要知道引用的具体类型,才能解决问题。
类的对象的产生都需要Class对象,forName(arg0)可以获得对象的Class对象,进而产生这个类的实例。
java编译器不允许向下的自动转换,除非明确指定。
Circle c = (Circle)b;
关键字instanceof告诉我们一个对象是不是特定类的实例。
向下转换时可以用来做检查。
isInstanceof()则可以直接对对象实例使用
Class对象很重要,在这里
RTTI和反射机制
时间: 2024-10-16 20:17:40