A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 吴承烨 中级黑马   /  2013-6-18 23:25  /  1589 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴承烨 于 2013-6-19 00:52 编辑

usb = new Iphone6();
=======================
Iphone6  iphone = new Iphone6();
USB usb = iphone;





这两种意思一样吗?

6 个回复

倒序浏览
你这边是不是Iphone6类继承了USB类?
然后第一种方式是USB usb=new Iphone6();?
也就是创建了一个子类实例来给父类的变量usb。创建了一个实例对象。
与下面一种作对比的话
Iphone6 iphone = new Iphone6();
USB usb2 = iphone;
new Iphone6()先开辟了一个空间给iphone,然后又开辟了一个空间给usb2

所以个人感觉还是不同的,对于usb和usb2是一样的,但第二种方式还多了个实例对象iphone
回复 使用道具 举报
第一种 你的意思应该是 声明一个usb变量  并且new一个子类给他

第二种是 声明子类变量 new子类对象给他 然后父类类型usb引用了他

这两种基本一样 你调试看一下 他们指向的内存地址是一样的 因为对象在不实例化(也就是new)的情况下 是不占据内存的
回复 使用道具 举报
基本一样 ,从Iphpne6()里里实例化一个变量赋给usb的。
回复 使用道具 举报
usb = new Iphone6();
=======================
Iphone6  iphone = new Iphone6();//现在 iphone 指针指向Iphone6()
USB usb = iphone;//引用传递,usb 的指针也指向了Iphone6()
回复 使用道具 举报
从usb的角度上看两者都是一样的,前提是usb是iphone的父类
回复 使用道具 举报
是一样的,usb都是指向Iphone6();的实例对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马