黑马程序员技术交流社区

标题: 有关引用传递 [打印本页]

作者: 王震    时间: 2013-6-20 23:13
标题: 有关引用传递
Chinese c=new Chinese(name,sex,age,color);
Person p=c;//其中Chinese是Person的子类,color是Chinese的特有字段
p 和 c所指的对象是一样的 为什么p.color访问不到。
作者: 愛↘轉角    时间: 2013-6-20 23:22
p是Person类型的,而person没有color属性,p当然访问不到拉。。
还有p和c所指的地址是不一样的
这里Person p=c是值传递,不是引用传递
作者: 蔡志涛    时间: 2013-6-21 10:07
本帖最后由 蔡志涛 于 2013-6-21 10:19 编辑

我觉的你没有把字段和属性的概念彻底搞清楚,你说color是Chinese特有的字段,那么字段的修饰符应该是private,Person类当然访问不到了。还有就是color是属性的话也是访问不到的,因为p是Person类型的,而person没有color属性,也没有继承任何有color属性的类,所以访问不到,它总不能从它的子类Chinese中继承吧,那样的话世界就乱了。。。。


作者: ◇゛ 仅此而以    时间: 2013-6-21 22:24
虽然你把c的实例赋值给了p ,但是p 还是Person 类型的,  你需要把p 转换成Chinese 类型的才可以访问 。
作者: 帕格尼尼的眼泪    时间: 2013-7-12 16:34
类不是Parson p=c那样这样传递的 这只是传递的值,所以Parson没有color属性 ,是访问不到的,再说哪有父类继承子类的 这是永远访问不到的  谢谢
作者: 醉红尘_碎星辰    时间: 2013-11-3 20:28
P是父类的对象C是子类的对象,好好看看里氏转换




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