本帖最后由 曹睿翔 于 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')其实就是一个混淆思路的,只要思路清晰,看一下就知道程序结果了。 哦了~
黑友们继续努力了。加油。
|