java 对象类型转换之子对象转化成父对象

来源:互联网 发布:网络教育培训加盟 编辑:程序博客网 时间:2024/05/17 05:56

代码摘抄自《java 就业培训教程 》——张孝祥

class A{public void func1(){System.out.println("A func1 is calling");}public void func2(){func1();}}class B extends A{@Overridepublic void func1() {System.out.println("B fun1 is calling");}public void func3(){System.out.println("B func3 is calling");}}public class C {public static void main(String args []){B b=new B();       //新建一个 b类对象A a=b;             //b类对象的地址传给一个a类引用类型变量callA(a);          //a应用传递给callA callA(new B());    //直接把B对象做为一个A对象传递给函数}public static void callA(A a){a.func1();a.func2();}}

运行一下输出结果如下:

     B fun1 is calling
     B fun1 is calling
     B fun1 is calling
     B fun1 is calling

简单梳理一下上面的过程,在callA方法中接收的参数是A类型的引用,传给他的是一个A类型的引用,该引用指向一个B类型的内存空间。然后调用func1()方法 ,这时调用的是传过来的地址所指向内存空间中的func1()方法,而传过来的虽然是A类型的引用,但是该引用指向的内容中存储的是B类型的对象,所以最终调用 的是B类型的func1()方法。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 科沃斯cr120遥控器丢了怎么办 买了kl色的钻戒怎么办 qq旋风没有蓝钻怎么办 手机桌面短信图标不见了怎么办 手机桌面qq音乐图标不见了怎么办 电脑显示器图标变大了怎么办 手机卡信号好但是网络不好怎么办 陌陌功能被限制怎么办 陌陌设备封了怎么办 荣耀v8手机开机键不灵怎么办 联通积分换的腾讯会员怎么办 小米6手机变卡了怎么办 微信绑定银行卡次数太多怎么办 银行卡绑定太多微信了怎么办 怎样给qq设密码怎么办 吃了心悦胶囊上火怎么办 qq暂时被冻结了怎么办 部落群审核未通过怎么办 qq被限制解封该怎么办 微信提现成功但没到账怎么办 拍拍贷登录不上怎么办 京东店铺出租保证金怎么办 所选地区无货怎么办 闲鱼七天没发货怎么办 续贷密码忘了怎么办 微店商家不发货怎么办 微店商家不退钱怎么办 维修车辆被拍违章停车怎么办 网贷申请平台太多怎么办 所在城市没有网店怎么办信用卡 拍拍贷不放款了怎么办 拍拍贷账号注销了怎么办 我在拍拍贷注销了怎么办 快贷逾期一年了怎么办 广州车牌买新车旧车怎么办 高尔夫旅行款被锁在车内怎么办 英雄联盟误删文件怎么办 拍拍贷换了号码怎么办 手机打开显示无法连接服务器怎么办 剑灵画面卡顿怎么办 cf被永久禁赛了怎么办