今天在看郑志远 先生的文章《Java运行时多态性的实现》时,突然有个想法,
我猜测jvm在实例化一个类时,是不是在实例中用一个类似string的变量记录了这个对象的类名,或用一个指针引用这个类在堆里的位置。
这样,在定位一个方法时它就可以通过这个变量或引用找到这个类,然后就可以通过reflection找到这个方法,如果没找到它会继续找到这个类的基类。
这样解释方法和接口的多态都是可以的,但具体是不是这样实现,还得参看jvm的实现细节。我现在还没研究过jvm,姑且做个猜想。哈哈。
本文地址:http://com.8s8s.com/it/it14571.htm