子类对象可以给父类对象赋值,反之则不可(编译能通过,但不能运行),具体原因不清楚,但是直观的想子类对象中包含更多的变量和方法,这样赋值没有风险。子类对象给父类对象赋值后,其实和(值传递&&地址传递 二)中的情况一样,也是把地址传递。例:
程序结果:
a.x=5
b.x=10
a=b后,a.x的改变影响了b.x的值,说明a和b的地址值是一样的(或者说a是b的引用)。
子类对象可以给父类对象赋值,反之则不可(编译能通过,但不能运行),具体原因不清楚,但是直观的想子类对象中包含更多的变量和方法,这样赋值没有风险。子类对象给父类对象赋值后,其实和(值传递&&地址传递 二)中的情况一样,也是把地址传递。例:
程序结果:
a.x=5
b.x=10
a=b后,a.x的改变影响了b.x的值,说明a和b的地址值是一样的(或者说a是b的引用)。