java中的多态是面向对象的最主要的特征,是一种方法的动态绑定,实际运行时的类型决定对象的行为,多态的表现形式是父类指针或引用指向子类对象,在这个指针上调用的方法使用子类的实现版本。多态是IOC、模板模式实现的关键。
在java中,在运行时会维持类型信息以及类的继承体系,每个类会在方法区中对应一个数据结构用于存放类的信息,可以通过class对象访问这个数据结构,其中,类型信息具有superclass属性指示了其超类,以及这个类对应的方法表(其中只包含这个类定义方法,不包含从超类继承来的),而每一个在堆上创建的对象,都有一个指向方法区类型信息数据结构的指针,通过这个指针可以确定对象的类型。