黑马程序员技术交流社区

标题: 在多态中,为什么不能把父类强制转换为子类,编译会报错??? [打印本页]

作者: n_Nie1991    时间: 2016-1-3 00:06
标题: 在多态中,为什么不能把父类强制转换为子类,编译会报错???
class Demo {
        public static void main(String[] args) {
               
                Animal a = new Animal();
                Cat c = (Cat)a;
                c.eat();
        }
}

class Animal {

        public void eat() {
                System.out.println("动物吃饭");
        }
}

class Cat extends Animal {
       
        public void eat() {
                System.out.println("猫吃鱼");
        }
}
作者: 随缘的影子    时间: 2016-1-3 00:21
扶额,建议你再看看第九天的视频,里面有介绍如何向下强转和如何向上强转。
顺便一提。向下强转必须有父类引用指向子类对象的前提。你这个纯粹是差个父类引用指向子类对象
把Animal a = new Animal();改成
Animal a = new Cat();就好了
作者: 549208564    时间: 2016-1-3 21:17
父类比子类大,子类比父类小,大的可以装小的,小的能装大的吗,这样去理解就可以了




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