class Animal { public String name; Animal (String name) { this.name = name; }} class Dog extends Animal { public String furColor; Dog(String n,String c) { super(n);c = furColor; }}public class Test { public static void main(String args[]) { Animal a = new Animal("name"); a = new Dog("bigyellow","yellow"); System.out.println(a.name); Dog d1 = (Dog) a; System.out.println(d1.furColor); }}请问为啥这里我写c = furColor; d1.furColor输出结果为null, 写成furColor=d1输出结果就是yellow呢?
2 回答
已采纳

四无小青年
TA贡献88条经验 获得超43个赞
这不是什么形参实参的问题,而是最基础的运算符的问题,java的赋值运算符“=”是把右边的值赋给左边,
你这样写c = furColor; 就是把furColor的值赋给c,所以furColor的没有任何变化还是初始值null,furColor=d1这是把d1的值赋给furColor=d1,所以furColor的值是等于d1的
若解惑,望采纳
添加回答
举报
0/150
提交
取消