您的位置:首页 > 编程语言 > Java开发

Java 向上和向下转型

2016-03-29 13:39 459 查看
转型是基于继承的。

向上转型

把子类转换成父类,不需要强制转换,则转型后不能访问子类特有的属性和方法,如果子类方法被重写,则根据动态绑定,父类调用子类同名方法时,重写生效,这里可以体现出多态。

向下转型

父类转换成子类,需要强制转换。

如果父类指向的就是子类,则转型安全;如果不是,会在运行时报错,java.lang.ClassCastException错误。可以使用instanceof来避免出错此类错误。

总结

父类引用可以指向子类对象,子类引用不能指向父类对象。

把子类对象直接赋给父类引用叫upcasting向上转型,向上转型不用强制转型。

如Father father = new Son();

把指向子类对象的父类引用赋给子类引用叫向下转型(downcasting),要强制转型。

如father就是一个指向子类对象的父类引用,把father赋给子类引用son 即Son son =(Son)father;

其中father前面的(Son)必须添加,进行强制转换。

upcasting 会丢失子类特有的方法,但是子类overriding 父类的方法,子类方法有效

向上转型的作用,减少重复代码,父类为参数,调有时用子类作为参数,就是利用了向上转型。这样使代码变得简洁。体现了JAVA的抽象编程思想
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: