黑马程序员技术交流社区

标题: 继承的问题 [打印本页]

作者: 海贼王019    时间: 2015-4-13 01:36
标题: 继承的问题
为什么这个不是 Object Version String Version  这个两个答案呢


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

2015-04-13_013419.png

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

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

第一次看到这个,厉害
作者: 海贼王019    时间: 2015-4-14 01:02
IT杰 发表于 2015-4-13 22:10
方法的重载就是要看亮点,Java中JVM给我们提供的一种技术,但是要注意两点:1  就是要看参数列表,参数列表 ...

恩,谢谢
作者: AndroidM    时间: 2015-4-14 01:56
学到了,这个问题还真没想过




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2