黑马程序员技术交流社区
标题:
求目测运行结果
[打印本页]
作者:
吴凯
时间:
2013-4-29 09:54
标题:
求目测运行结果
本帖最后由 吴凯 于 2013-5-1 01:37 编辑
package pkg1;
public class Jupiter{
void method1(){
System.out.println("In Jupiter");
}
public void call(){
method1();
}
}
package pkg2;
import pkg1.Jupiter;
public class Minerva extends Jupiter{
public void method1(){
System.out.println("In Minerva");
}
public static void main(String[] args) {
new Minerva().call();
}
}
作者:
殇_心。
时间:
2013-4-29 10:02
System.out.println("In Minerva");
作者:
袁梦希
时间:
2013-4-29 10:32
目测的结果肯定是 In Minerva
但是这道题你仔细目测其实这两个类不是在同一个包中,所以运行时调用父类的方法了,子类的方法被掩盖了,打印 In Jupiter
作者:
赵崇友
时间:
2013-4-29 10:53
目测是:In Jupiter
作者:
吴建昆
时间:
2013-4-29 15:07
new Minerva().call() 调用父类的call()方法,继而运行call()方法中的method1();
此时,父类Jupiter中有method1()方法,它就不会去找其它的了,就会运行父类中的
void method1(){
System.out.println("In Jupiter");
}
所以输出结果应该是In Jupiter吧 我是这样分析的,不知道对不对。
作者:
花开花落总相似
时间:
2013-4-29 16:04
目测调用的是父类的中的方法 结果是In Jupiter
作者:
吴凯
时间:
2013-4-29 21:56
各种高手啊
作者:
黄玉昆
时间:
2013-4-29 23:04
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
作者:
Sword
时间:
2013-4-30 01:40
目测调用的是父类的中的方法
所以结果应该是是In Jupiter,
不对请指正,谢谢了{:soso_e100:}
作者:
符立波
时间:
2013-4-30 10:17
本帖最后由 符立波 于 2013-4-30 10:21 编辑
貌似内存中只有一个new Minerva()的对象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2