黑马程序员技术交流社区

标题: 这俩种意思一样吗?【高手进来】 [打印本页]

作者: 吴承烨    时间: 2013-6-18 23:25
标题: 这俩种意思一样吗?【高手进来】
本帖最后由 吴承烨 于 2013-6-19 00:52 编辑

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





这两种意思一样吗?


作者: 愛↘轉角    时间: 2013-6-19 00:27
你这边是不是Iphone6类继承了USB类?
然后第一种方式是USB usb=new Iphone6();?
也就是创建了一个子类实例来给父类的变量usb。创建了一个实例对象。
与下面一种作对比的话
Iphone6 iphone = new Iphone6();
USB usb2 = iphone;
new Iphone6()先开辟了一个空间给iphone,然后又开辟了一个空间给usb2

所以个人感觉还是不同的,对于usb和usb2是一样的,但第二种方式还多了个实例对象iphone

作者: Candy小烨    时间: 2013-6-19 06:02
第一种 你的意思应该是 声明一个usb变量  并且new一个子类给他

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

这两种基本一样 你调试看一下 他们指向的内存地址是一样的 因为对象在不实例化(也就是new)的情况下 是不占据内存的
作者: 逆_水_寒    时间: 2013-6-19 12:52
基本一样 ,从Iphpne6()里里实例化一个变量赋给usb的。
作者: 彭康    时间: 2013-6-19 14:20
usb = new Iphone6();
=======================
Iphone6  iphone = new Iphone6();//现在 iphone 指针指向Iphone6()
USB usb = iphone;//引用传递,usb 的指针也指向了Iphone6()
作者: 陈壹    时间: 2013-6-19 15:59
从usb的角度上看两者都是一样的,前提是usb是iphone的父类
作者: 李士茂    时间: 2013-6-19 16:46
是一样的,usb都是指向Iphone6();的实例对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2