日期:2014-05-20  浏览次数:20592 次

技术帖,如果你想了解多态(关于多态性的动态绑定问题,对象调用方法的执行过程),那你不防来看看.虽有钻牛角尖的嫌疑,但你一定会发现
关于多态性的动态绑定问题。对象调用方法的执行过程!
  虽有钻牛角尖的嫌疑,但你一定会发现值得你发现的东西!!
       
      虚拟机预先为每个类创建一个表,列出所有的方法签名和实际调用的方法:
       
        对象调用方法的执行过程
        1.首先,编译器察看调用方法的对象的声明类型和方法名,如果声明类型为Private、statie、final   构造器,则静态绑定,找出并调用方法。
     

      2.否则编译器列出所有方法和继承为public的方法。
      3.如果重载的话,编译器察看调用方法时的方法参数类型,发生重载解析。最后将获得被调用方法的方法签名(方法名+方法参数列表)。
        4.如果被调用方法没重写,就直接搜索定义该方法签名的类的方法表,调用该方法。
        5.如果被重写意味着这个方法可能是超类的方法也可能是子类的方法。虚拟机会从子类到超类搜索定义该方法签名的类,调用与调用该方法的对象的实际类型相匹配的类的方法表,找出并调用方法。
        6.如果是使用super将会只是编译器调用超类的方法,搜索超类的方法表,找出并调用。
       

      有钻牛角尖的嫌疑。还是希望大家都来用力顶哈。。   小弟在此谢谢啦~~

      在此我先谢谢       jingweixml()!

      PS:因本人能力和表达能力有限,小错误嘛!总是有得,大家不要因为怕伤了我的自尊心而指出,为了本人前途大家尽力说出,本人会虚心接受的,并加强改进·

------解决方案--------------------
UP
------解决方案--------------------
这个问题对于一个Cpper都是很简单的。

------解决方案--------------------
xuexi
------解决方案--------------------
不错,听君一席话又钩起偶对操作系统的回忆,这样联系起来感觉颇深
------解决方案--------------------
帮顶而已
------解决方案--------------------
学了JAVA1年 还是不怎么看得不懂2楼的话 ,管他是什么原理,能用就行
------解决方案--------------------
学习,帮顶~~~
------解决方案--------------------
太简单了。
------解决方案--------------------
这谁也太会翻了吧,一年前的帖子。。。。。。