父类子类转换
Posted yudongxuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了父类子类转换相关的知识,希望对你有一定的参考价值。
子类转父类:
让父类的引用指向子类的引用就可以转换。除了构造方法以外子类继承了父类的所有,所以父类指向子类是没问题的。
Son s = new Son(); Father f = s;
上段代码中s是子类的引用,f是父类的引用,虽然s和f都指向了Son类的对象,但是意义却不同。对于引用s,它会把这个对象当做Son类的对象,而引用f会把这个当做Father类的对象。引用s可以随意访问这个对象中的内容,但是引用f却只能访问Father类中有的内容,不能访问子类中多出的内容。这就达到了子类转换成父类的效果,从引用f来看,这个对象就是父类对象,所以说是子类转成了父类。
父类转子类:
父类转子类的前提是,父类的引用必须指着子类的对象,向上边图的f一样,进行转换加括号即可。原来以f的视角来看,指向的是父类的对象,转换后f指的就是子类的对象,跟引用s一个效果,代码如下
Son s = new Son(); Father f = s; Son convert = (Son) f;
以上是关于父类子类转换的主要内容,如果未能解决你的问题,请参考以下文章
java 里 可以把一个父类强制转换成一个子类 不能把一个子类强制转换成一个父类? 对吗?