父类对象转换为子类对象就是向下转型 程序会自动完成
子类对象转换为父类对象为向上转型需要强制类型转换,我这么理解对不
是的,父类转换到子类自动完成,因为一个子类中包含父类的所有东西
子类转父类要强制转换,因为子类中有的父类可能没有
一楼别坑人好么;
Object 是所有类的父类
Integer b = 23;
Object bb = (Object)b;
这个没错,下个就会报类型转换异常了;
Object c = new Object();
Integer cc = (Integer)c;
说反了吧!父类转换到子类需要强制转换,子类到父类自动完成。
比如有类Shape和它的子类Circle和子类Rectangle,
Shape s = new Circle();//合法,因为Circle对象它确定知道自己也是一个Shape对象
Circle c = s;//非法的,因为s只能知道它是一个Shape,但具体的Shape类型到底是Circle、Rectangle或者是其它什么类型它并不知道,
//这时如果你确定这个s是一个Circle类型的对象的话,就需要强制类型转换告诉编译器这么做没有问题
写错了吧,父类对象转换为子类对象为向下转型,需要强制转换,而子类对象转换为父类对象为向上转型,不需要强制转换!!!
http://blog.csdn.net/mr_jj_lian/article/details/6860845