java中向上转型和向下转型的作用,java中向上转型是指
目录
向上转化和向下转化的区别1。代码实现2。向下转换的实现3。此时执行程序简单理解为向上转换和向下转换向上转换:父类引用指向子类对象向下转换:子类引用指向父类对象。
向上转型和向下转型的区别
前言:
向上转换:父类的引用类型指向子类的实例对象,此时不能使用子类中的成员变量和方法。向下变换:通过引用类型的强变换,恢复子类的成员变量和方法。
1.代码实现
可以发现,虽然父类指向了子类的实例对象,但是却无法调用子类对象的方法,编译器报错。这个时候我们可以算是被隐藏了,那么怎么才能释放隐藏的方法呢?此时,我们需要向下转型。
00-1010将强引用类型转换为子引用类型。
((儿子)答)。睡眠();//调用子类的sleep方法
2.实现向下转型
成功向下转型,那么这样有什么作用呢?
其实不管是上翻还是下翻,都是为了改变类的使用范围和应用范围,从而在不同的范围内操作变量或者方法。
其实这是java的继承多态性,有利于程序扩展。
我们需要这种设计方法来编写更易维护、更简洁的代码。
3.此时执行程序
例如,子类student继承父类person。
Person person=新生();向上转型后的变化
关于方法:person可以调用子类和父类共有的方法(如果子类覆盖了父类的方法,就调用子类的方法),但是子类的具体方法不能调用。
关于属性:person可以调用父类的属性,但不能调用子类的属性。
向上转型的作用
减少一些重复代码。
在实例化对象时,可以根据不同的需求实例化不同的对象。
00-1010父亲f=新儿子()//向上变换第一个儿子s=(儿子)f;//向下转换,强制转换。子类指S,超类指f .向下变换的条件:先向上变换,再向下变换。没有向上转换,会提示编译错误。
向下转型后的变化
关于方法:可以调用子类的所有方法和属性,类型转换为子类。
关于属性:被调用的属性是一个子类的属性。
向下转换的作用:向上转换时,子类对象特有的其他方法会丢失;它可以通过向下转换再次转回。
这种转换可能存在转换失败的风险,因为父类的范围更广。如果不确定父类对象是这个子类的对象,不建议向下转换。
Person person=新生();老师老师=(老师)人;//不安全感是我的亲身经历。希望能给大家一个参考,也希望大家能支持盛行的IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。