黑马程序员技术交流社区

标题: 编译报错 ,为什么呢 [打印本页]

作者: lizhi1817    时间: 2015-6-18 01:50
标题: 编译报错 ,为什么呢
15:下列程序的运行结果是:( )   
class Fu
{
        public void show()
        {
                System.out.println("fu show");
        }
}

class Zi extends Fu
{
        public void show()
        {
                System.out.println("zi show");
        }

        public void method()
        {
                System.out.println("zi method");
        }
}
class Test
{
        public static void main(String[] args)
        {
                Fu f = new Zi();
                f.method();
        }
}
A:fu show
B:zi show
C:编译报错
D:zi method

作者: xiongfangyuan    时间: 2015-6-18 07:47
编译报错,因为多态原因所产生的貌似 动物=小狗 动物不能调用小狗的特有方法,只能调用共性方法。强转一下就可以的了 Fu f = new Zi();         Zi z=(Zi)f;      z.method();
作者: guiqulaixi    时间: 2015-6-18 12:11
有一个小诀窍 就是编译时看左边的引用类型  父类引用调用了子类特有的方法是不合适的
作者: weiwei1    时间: 2015-6-18 12:21
新生来学习了
作者: 改变    时间: 2015-6-18 12:35
因为子类没有定义method方法啊,当子类类型向上提升时,只能调用子类重写父类的方法,或者父类定义过的方法。
作者: wwb1105    时间: 2015-6-18 12:38
学习来了~~~




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