Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:一道csjp题目 [Re:gutxgc]
tomcatexpert





发贴: 52
积分: 2
于 2006-05-14 03:38 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
这是一道很有趣的题目.

Constructor的执行顺序是
1. Call this() or super (),一层层叫上去,直到Object为止
2. 执行所有member attributes 的赋值.
3. 执行Constructor 内部的Code

所以,本题中当Mobile被建立时,顺序是这样的
1. Phone ()
2. String device = "Mobile.device"; // Mobile 类
3. Mobile() 里面的代码

具体结果就是:
1. Phone()被呼叫时,Mobile 类的device还没被赋值,而Phone() 里的showDevice() 被Overriden,所以打印结果是 Mobile.showDevice,null
2. Mobile类的device被赋值
3. 此时再执行Mobile() 里的showDevice(),效果和在main() 方法使用n.showDevice()一样,各打印一个Mobile.showDevice,Mobile.device

推荐阅读:Thinking in Java




一个程序员的奋斗历程

话题树型展开
人气 标题 作者 字数 发贴时间
8790 一道csjp题目 gutxgc 936 2006-05-13 11:57
7304 Re:一道csjp题目 tomcatexpert 508 2006-05-14 03:38
6836 Re:一道csjp题目 gutxgc 54 2006-05-14 11:12
7491 Re:一道csjp题目 hong_sea 493 2006-05-16 16:49

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923