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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴凯 中级黑马   /  2013-4-29 09:54  /  1460 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴凯 于 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();
}
}


评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

9 个回复

倒序浏览
System.out.println("In Minerva");
回复 使用道具 举报
目测的结果肯定是  In Minerva  
但是这道题你仔细目测其实这两个类不是在同一个包中,所以运行时调用父类的方法了,子类的方法被掩盖了,打印 In Jupiter
回复 使用道具 举报
目测是:In Jupiter
回复 使用道具 举报
new Minerva().call() 调用父类的call()方法,继而运行call()方法中的method1();
此时,父类Jupiter中有method1()方法,它就不会去找其它的了,就会运行父类中的
void method1(){
System.out.println("In Jupiter");
}
所以输出结果应该是In Jupiter吧 我是这样分析的,不知道对不对。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

回复 使用道具 举报
  目测调用的是父类的中的方法 结果是In Jupiter

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

回复 使用道具 举报
吴凯 中级黑马 2013-4-29 21:56:13
7#
各种高手啊
回复 使用道具 举报
黄玉昆 黑马帝 2013-4-29 23:04:39
8#
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
Sword 金牌黑马 2013-4-30 01:40:02
9#
目测调用的是父类的中的方法
所以结果应该是是In Jupiter,
不对请指正,谢谢了{:soso_e100:}
回复 使用道具 举报
本帖最后由 符立波 于 2013-4-30 10:21 编辑

貌似内存中只有一个new Minerva()的对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马