黑马程序员技术交流社区

标题: 此代码运行结果是什么? [打印本页]

作者: 丿若恋灬如初    时间: 2016-3-24 20:12
标题: 此代码运行结果是什么?
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;
                }
}
运行结果是什么?为什么?
作者: funtyung    时间: 2016-3-24 20:21
有答案吗
作者: 丿若恋灬如初    时间: 2016-3-24 20:51
funtyung 发表于 2016-3-24 20:21
有答案吗

有,自己看看
作者: lyy0525    时间: 2016-3-24 20:52
打印结果是A B
因为Fu f=new Demo();//将子类对象当作父类来使用。这时调用父类中方法,若子类已经重写此方法那么就执行子类中的同名方法,这种现象就是多态
作者: ShallDoll    时间: 2016-3-24 21:29
楼上正解,遍左看右,f.show('B')返回的是false,所以不会执行方法体和控制语句




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2