查看: 1594| 回复: 8
跳转到指定楼层
上一主题 下一主题
收起左侧

如果这样的类生成,该怎么办?

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x


看第四个就可以,前三个都挺简单


上一篇:Recursion题目求解
下一篇:【第三轮】7.7-7.13 CareerCup 3.7
🔗
readman 2014-7-6 17:12:58 | 只看该作者
全局:
a2.m1() 你看 a2是一个c的实例, 但是c里面没有m1方法. 所以他调用的是B的m1.
a2.m2()同上, 调用的是A中的m2
a2.m3()是C自己的
回复

使用道具 举报

🔗
 楼主| TonyJang 2014-7-6 20:17:07 | 只看该作者
全局:
readman 发表于 2014-7-6 17:12
a2.m1() 你看 a2是一个c的实例, 但是c里面没有m1方法. 所以他调用的是B的m1.
a2.m2()同上, 调用的是A中的m ...

答案是B'm1 C'm2 A'm3....
回复

使用道具 举报

🔗
readman 2014-7-6 21:04:58 | 只看该作者
全局:
TonyJang 发表于 2014-7-6 20:17
答案是B'm1 C'm2 A'm3....

c 没有自己的m2啊
回复

使用道具 举报

🔗
readman 2014-7-6 21:07:49 | 只看该作者
全局:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -Didea.launcher.port=7532 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA 13.app/bin" -Dfile.encoding=UTF-8 -classpath "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/deploy.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/dt.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javaws.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/jce.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/jconsole.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/management-agent.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/plugin.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/sa-jdi.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/alt-rt.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/alt-string.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/charsets.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jsse.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/apple_provider.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/dnsns.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/localedata.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/sunjce_provider.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/sunpkcs11.jar:/Users/Readman/Dropbox/美国工作/leetcode/out/production/leetcode:/Applications/IntelliJ IDEA 13.app/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain C
m1 in B
m2 in A
m3 in C

Process finished with exit code 0
回复

使用道具 举报

🔗
阿兰阿兰 2014-7-6 23:32:08 | 只看该作者
全局:
C继承了B,B继承了A。同时B覆盖了A中的m1()方法,所以B的m1是自己的方法,m2,m3和A一样;C继承时覆盖了B的m3,所以C的方法是B的m1,A的m2,C自己的m3。  而a2是类C的对象,所以我觉得答案应该是: B‘s m1   A’s m2   C‘s m3 13.

p.s. 我记得我当时自己做的时候就觉得是答案错了,跟小伙伴讨论了一下也是这样觉得。若是理解有误请各位大侠拔刀相助!
回复

使用道具 举报

🔗
zcy1848 2014-7-7 02:25:04 | 只看该作者
全局:
TonyJang 发表于 2014-7-6 20:17
答案是B'm1 C'm2 A'm3....

答案肯定错了,c哪有m2
回复

使用道具 举报

全局:
实测,结果和第二组一样
B‘s m1   A’s m2   C‘s m3 13.
回复

使用道具 举报

🔗
sqzhang17 2014-7-7 13:23:56 | 只看该作者
全局:
我记得我在head first java 里面看过这个~答案应该是有问题的~
如果就调用方法来说的话~我记得这本书里面有一句话非常有用
“The Lowest Win”
就是说对于继承关系来说~如果本类中没有相应的被调用方法的话~就要再继承关系当中找~越矮的类中被overriden的方法才会被调用~

所以只要记住这句话就行了~“The Lowest Win”
所以正确答案应该是大家说的~
B‘s m1   A’s m2   C‘s m3  13
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表