A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 海贼王019 中级黑马   /  2015-4-13 01:36  /  483 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么这个不是 Object Version String Version  这个两个答案呢


2015-04-13_013419.png (17.13 KB, 下载次数: 13)

2015-04-13_013419.png

7 个回复

倒序浏览
这是重载优先级的问题,当一个方法被重载时,在调用这个方法的时候编译期间就已经确定了它会执行哪个方法,是依次向上转型,比如如果你传入了一个char类型的参数,那么选择重装方法的优先级如下char->int->long->Character->Serializable-Object->char... 当转型到封装类时还找不到相应的方法,那么就寻找其封装类的接口,如果还找不着,那就直接到父类,再是父类的父类(按继承关系从下向上找,越上优先级越低),而最低的是变长参数. 即使传入的参数是null,上面的规则也是适用的. 这其实是分派中的静态分派的一个应用.详情参见JVM规范中的分派.
回复 使用道具 举报 1 0
长知识了
回复 使用道具 举报
cyr 发表于 2015-4-13 08:26
这是重载优先级的问题,当一个方法被重载时,在调用这个方法的时候编译期间就已经确定了它会执行哪个方法,是 ...

啊,我看了几遍还是没太懂,我在看几遍,谢谢
回复 使用道具 举报
方法的重载就是要看亮点,Java中JVM给我们提供的一种技术,但是要注意两点:1  就是要看参数列表,参数列表的元素个数,还要看参数的数据类型,要注意的是参数的顺序  2  就是要注意方法的重载不是指方法的返回值类型不同
回复 使用道具 举报
cyr 发表于 2015-4-13 08:26
这是重载优先级的问题,当一个方法被重载时,在调用这个方法的时候编译期间就已经确定了它会执行哪个方法,是 ...

第一次看到这个,厉害
回复 使用道具 举报
IT杰 发表于 2015-4-13 22:10
方法的重载就是要看亮点,Java中JVM给我们提供的一种技术,但是要注意两点:1  就是要看参数列表,参数列表 ...

恩,谢谢
回复 使用道具 举报
学到了,这个问题还真没想过
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马