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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-陈思源 中级黑马   /  2013-7-2 16:59  /  1877 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 曹睿翔 于 2013-7-5 07:33 编辑

今天在复习之前知识时候发现一道练习题。分别涉及了多态,for循环,&&符号,继承,子类的覆盖。果断给大家分享下,让忘记的人再回味下,哈哈。不说 上码。
-------------------------------------------------------
写出程序结果
  1.    class Fu{     
  2.        boolean show(char a)    {   
  3.              System.out.println(a);         
  4.              return true;   
  5.          }
  6.   }
  7.   class Demo extends Fu{   
  8.      public static void main(String[] args) {            
  9.       int i=0;            
  10.       Fu f=new Demo();            
  11.      Demo d=new Demo();         
  12.       for(f.show('A');
  13. f.show('B')&&(i<2);f.show('C')) {            
  14.           i++;               
  15.          d.show('D');            
  16.             }           
  17.     }   
  18.     boolean show(char a)  {   
  19.             System.out.println(a);        
  20.        return false;
  21.       }
  22.    }
  23. A B-------------------------------------------------------
复制代码


如上自己的分析:      题目是写出程序结果。OK,那就找主函数。好的,先是声明一个表示 i=0。接着就是一个多态,父类引用指向子类对象为f;然后是new一个Demo对象。接着是for循环。第一个执行的事f.show('A'),恩  不管父类,因为下面子类已经覆盖,只需看Demo中的show方法即可,得知,程序结果有一 A 了,并且放回一个false。继续看f.show();ok,程序结果目前为  A  B了。哦 ,到了&&符号了以为打印B的时候得到了一个false,那就不用看了。结束循环。程序也就结束了。打印结果就是AB。当然for循环中的d.show('D')其实就是一个混淆思路的,只要思路清晰,看一下就知道程序结果了。   哦了~
       黑友们继续努力了。加油。

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3 为了便于大家理解,楼主下次发帖的时候注意.

查看全部评分

8 个回复

倒序浏览
啊!!肿么可以这样。编辑的时候代码很好的啊。怎么不换行了   !! -   -#
回复 使用道具 举报
重新编辑下。。。太乱了眼花缭乱
回复 使用道具 举报
这么乱  确实是神题
回复 使用道具 举报
黄少海 发表于 2013-7-2 17:16
重新编辑下。。。太乱了眼花缭乱

额、sorry   问一下   怎么编辑啊  ..
回复 使用道具 举报
最好将代码用图片的形式发出来
回复 使用道具 举报
李友元 发表于 2013-7-5 00:08
最好将代码用图片的形式发出来

不建议用图片,贴代码有专用的代码块,就长这样 <>
回复 使用道具 举报
曹睿翔 发表于 2013-7-5 07:35
不建议用图片,贴代码有专用的代码块,就长这样

原来长那样啊,哈哈哈,你挺幽默的么!
回复 使用道具 举报
曹睿翔 发表于 2013-7-5 07:35
不建议用图片,贴代码有专用的代码块,就长这样

原来长那样啊,哈哈哈,你挺幽默的么!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马