A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

想太多

  • 黑马币:17

  • 帖子:51

  • 精华:0

© 想太多   /  2016-7-8 22:55  /  4036 人查看  /  27 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

cat73 黑马帝 2016-7-22 18:43:32
21#
男人 属于 人
人 属于 动物
那么:
我说一个人是动物,这就是人到动物的向上转型。
我说一个人是男人,这就是人到男人的向下转型。
回复 举报
了解了.有压力啊
回复 举报
这个是多态中的,向上转型就是父类引用指向子类对象,向下转型就是将父类引用转换为子类引用
回复 举报
感觉这个没有什么实际的意义呢
回复 举报
向上就是子类转父类
向下就是父类转子类
回复 举报
向下转型的前提一定是存在多态,当父类中有共享的方法,为了方便调用简化操作,一般都会向上转型,如果一个方法父类没有,子类有,那么在多态的前提下要向下转型才可以用到子类的方法
回复 举报
向上转型
*         多态本身的父类引用指向子类对象就是  将子类对象向上转型
* 向下转型
*        如果之前已经是一个子类对象,提升成了父类引用,就可以强制向下转为子类引用
                                                Zi zi = new Zi();
                                                Fu fu = new Fu();
                                                //多态
                                                Fu fz = new Zi();  //父类引用指向子类对象
                                             //这时候可以调用父类方法,但按子类的方法执行(即如有方法重写,按重写方法执行,多态),不能调用父类没有的方法。
                                                fz.method2();  //method2() 是子类继承父类并重写的方法
                                                //fz.method(); //method() 是子类中特有的方法,这时不能被fz调用
                                               
                                                //向下转型(强制类型转换)
                                                //如果之前已经是一个子类对象,提升成了父类引用,就可以强制向下转为子类引用
                                                Zi zi2 = (Zi)fz;  //fz之前是通过向上转型得到的
                                                //这时候zi2可以调用子类所有的方法(包括从父类继承的),并按子类方法执行
                                                zi2.method();
                                                zi.method2();
                                               
                                                //fu引用指向的对象,创建对象是就是父类对象,无法转为子类对象
                                                //类型转换异常是一个运行时异常。即编译时不报错,运行时报错的异常
                                                Zi zi3 = (Zi)fu; //这个就不对了

                                        * 父类引用指向子类对象时,向上转型相当于给儿子带了一个父亲的面具!
                                        * 向下转型时,相当于又把面具给摘下来了。
                                        * 而真实的父亲,并不能向下转型,因为父亲根本不带面具,所以也没办法摘下来!

回复 举报
不懂的地方,多看看视频,然后多敲敲代码就好了
回复 举报
12
您需要登录后才可以回帖 登录 | 加入黑马