对象强制类型转换 java

阅读: 评论:0

对象强制类型转换 java

对象强制类型转换 java

不积跬步,无以至千里;不积小流,无以成江海。

Java语言基础

Java对象的强制类型转换

在java中强制类型转换分为基本数据类型和引用数据类型两种,这里讨论引用数据类型。

在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。

构建 Son 和 Father 两个类

class Father{

public void eat(){

System.out.println("father is eating!");

}

public void sleep(){

System.out.println("father is sleeping!");

}

}

class Son extends Father{

public void sleep(){

System.out.println("son is sleeping!");

}

public void play(){

System.out.println("son is playing!");

}

}

首先构造一个Son对象,然后用一个Father类型变量引用它:

Father father = new Son();

在这里Son 对象实例被向上转型为father了,但是请注意这个Son对象实例在内存中的本质还是Son类型的,只不过它的能力临时被消弱了而已,现在我们将其对象类型还原!

Son son = (Son) father;

其实father引用仍然是Father类型的,只不过是将它的能力加强了,将其加强后转交给son引用了,Son对象实例在son的变量的引用下,恢复真身,可以使用全部功能了。

看一下整体效果:

public class Test {

public static void main(String[] args) {

// TODO Auto-generated method stub

Father father = new Son();

father.sleep();

father.eat();

System.out.println(" ");

Father f = new Son();

Son son = (Son) f;

son.eat();

son.sleep();

son.play();

}

}

程序输出:

son is sleeping!

father is eating!

father is eating!

son is sleeping!

son is playing!

本文发布于:2024-02-04 15:40:46,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170710776056778.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   类型   java
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23