课程
/后端开发
/Java
/Java入门第二季 升级版
为什么我的父类和转换为子类就出错,不能强制转换啊?
2017-05-06
源自:Java入门第二季 升级版 10-2
正在回答
你报错的那一行的意思是Dog类的引用指向父类。有这个说法吗?没有吧。前面说过:一种是父类的引用指向本类的对象,如Animal animal=new Animal();一种是父类的引用指向子类对象,如Animal animal=new Dog();还有一种就是你上面所要表达的意思:子类的引用指向父类对象,如Dog dog=(Dog)new Animal();所以你应该写成:
Dog dog2=(Dog)new HelloWorld();
你的HelloWorld从哪来的,你强制转化是Dog,怎么是HelloWorld呢
你要先实例化父类对象啊
对于这个问题,首先你得先声明这个HelloWorld这个类就像声明Dog这个类一样,然后才可以转换,在Dog dog2 = (Dog) helloworld;之前加上这个HelloWorld helloworld = new HelloWorld(); 希望能够帮助到你
你的类名错了HelloWorld
首字母大写
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
4 回答强制类型转换不能直接将父类对象转换为子类对象吗
4 回答本节例题中animal可以强制转换成Dog类,为什么不能强制转换成Cat类?Cat类和Dog类都是Animal类的子类啊。
4 回答强制类型转换
3 回答向上转换不是小类型转换成大类型吗?为什么是父类转换成子类。不是父类大吗
5 回答为什么dog就可以强制类型转换,而cat就不行?不都是动物的子类么?