Java进阶教程之运行时类型识别RTTI机制
运行时类型识别(RTTI,Run-TimeTypeIdentification)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息。
多态(polymorphism)是基于RTTI实现的。RTTI的功能主要是由Class类实现的。
Class类
Class类是"类的类"(classofclasses)。如果说类是对象的抽象和集合的话,那么Class类就是对类的抽象和集合。
每一个Class类的对象代表一个其他的类。比如下面的程序中,Class类的对象c1代表了Human类,c2代表了Woman类。
publicclassTest { publicstaticvoidmain(String[]args) { HumanaPerson=newHuman(); Classc1 =aPerson.getClass(); System.out.println(c1.getName());
HumananotherPerson=newWoman(); Classc2 =anotherPerson.getClass(); System.out.println(c2.getName()); } }
classHuman { /** *accessor */ publicintgetHeight() { returnthis.height; }
/** *mutator */ publicvoidgrowHeight(inth) { this.height=this.height+h; } privateintheight; }
classWomanextendsHuman { /** *newmethod */ publicHumangiveBirth() { System.out.println("Givebirth"); return(newHuman()); }
}