
java向下转型和向下转型是怎么一回事?请高人指点一下,谢谢!!
3个回答
2014-01-10
展开全部
说白了就是变大变小变大,你当然愿意了,肯定不用强制你变小,你就有点不情愿了,就需要强制你向上转型也称装箱向下转型称为拆箱补充: (一)向上转型(1)定义: 把对某个对象的引用视为对其基类引用的做法被称为“向上转型”。
这主要是由于子类的对象可以看成是基类的对象这原因而得来的,也就是具有is-a关系。比如:
Useful useful = new MoreUseful();//右边是一个子类的对象,而左边是一个父类类型
//的变量,指向右边的子类对象。(2)基类可以接收发给导出类的任何消息,因为二者有完全相同的接口,我们只需要从导出类向上转型,永远不需要知道正在处理的对象的确切类型,这也就是多态性决定的。利用多态性,具有同样方法名和方法特征的方法根据调用方法的对象的类型,可以产生不同的动作,这极大地增加了程序员的表达能力。(1)向下转型概述继承可以确保所有的子类类具有基类的接口,且绝对不会少。那么子类除了有父类的方法,也可以有自己的额外的新方法(这些方法是基类所没有的),那么一旦向上转型,就不能调用子类中的新方法,那么能不能用一种方式调用这些新方法呢?当然有了,这时候就需要向下转型。(2)向下转型将超类的引用强制转换为子类类型就叫做向下转型。注意:将超类的引用赋给为子类类型的变量(没有进行显示地强制转换)是一个编译错误。总之:向下转型时,对象只能强制转换为其本身类型或者其超类类型。
这主要是由于子类的对象可以看成是基类的对象这原因而得来的,也就是具有is-a关系。比如:
Useful useful = new MoreUseful();//右边是一个子类的对象,而左边是一个父类类型
//的变量,指向右边的子类对象。(2)基类可以接收发给导出类的任何消息,因为二者有完全相同的接口,我们只需要从导出类向上转型,永远不需要知道正在处理的对象的确切类型,这也就是多态性决定的。利用多态性,具有同样方法名和方法特征的方法根据调用方法的对象的类型,可以产生不同的动作,这极大地增加了程序员的表达能力。(1)向下转型概述继承可以确保所有的子类类具有基类的接口,且绝对不会少。那么子类除了有父类的方法,也可以有自己的额外的新方法(这些方法是基类所没有的),那么一旦向上转型,就不能调用子类中的新方法,那么能不能用一种方式调用这些新方法呢?当然有了,这时候就需要向下转型。(2)向下转型将超类的引用强制转换为子类类型就叫做向下转型。注意:将超类的引用赋给为子类类型的变量(没有进行显示地强制转换)是一个编译错误。总之:向下转型时,对象只能强制转换为其本身类型或者其超类类型。
2014-01-10
展开全部
比如有父类A和子类BA a=new B();//这是上转型 把子类对象转变为父类类型,不需要强制类型转换。B b=(B)new A();//这是下转型 把父类对象转换成子类类型,需要强制类型转换。这是多态的概念,不懂的可以继续追问哦。。热心为你解答。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
向上就是从小到大的过程,向下就是从小变大的过程。具体体现在类型转换和类的继承方面。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询