本帖最后由 曹睿翔 于 2013-7-5 07:33 编辑  
 
今天在复习之前知识时候发现一道练习题。分别涉及了多态,for循环,&&符号,继承,子类的覆盖。果断给大家分享下,让忘记的人再回味下,哈哈。不说 上码。 
------------------------------------------------------- 
写出程序结果-    class Fu{     
 
 -        boolean show(char a)    {    
 
 -              System.out.println(a);          
 
 -              return true;    
 
 -          }
 
 -   }
 
 -   class Demo extends Fu{   
 
 -      public static void main(String[] args) {            
 
 -       int i=0;             
 
 -       Fu f=new Demo();             
 
 -      Demo d=new Demo();         
 
 -       for(f.show('A');
 
 -  f.show('B')&&(i<2);f.show('C')) {             
 
 -           i++;               
 
 -          d.show('D');            
 
 -             }           
 
 -     }   
 
 -     boolean show(char a)  {   
 
 -             System.out.println(a);        
 
 -        return false; 
 
 -       }
 
 -    }
 
 - 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')其实就是一个混淆思路的,只要思路清晰,看一下就知道程序结果了。   哦了~  
       黑友们继续努力了。加油。 
 |