RTTI RunTime Type Info
- 多态
在面向对象语言中,接口的多种不同的实现方式即为多态。
多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作。
Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,
父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
java中,父类型引用可以指向子类型对象。
Shape shape = new Triangle();
shape.draw();
而调用对象方法,具体执行哪段代码,取决于对象的运行时类型。
RTTI
Class clazz = Class.forName("com.xxx.Person"); // Person.class // 这会导致类加载器去加载 .class文件
一旦我们拿到类的模板,我们就能知道关于这个类的一切信息。
(类名,所在的包,它的方法,属性,类本身的类型,继承的父类,实现的接口,添加的注解。。。)
有了类模板,我们可以生产对象。clazz.newInstance()static 代码块
在类加载的时候执行限制接收类型的Class
Class
Class<?> // 任意