动手动脑(lesson 6)

时间:2023-01-06 21:12:51

一、继承条件下的构造方法调用

动手动脑(lesson 6)

运行结果:

动手动脑(lesson 6)

二、

动手动脑(lesson 6)

答:构造函数的主要作用是初始化环境,子类是继承的父类,也就是说父类中有的子类全都有,而子类中有的父类不一定有,因此子类运行会调用父类构造函数,而父类不可能运行子类构造函数。

三、

动手动脑(lesson 6)

四、

动手动脑(lesson 6)

答:当没有指明继承类时,会自动继承最大的父类object类,因此输出的也是object类的地址。

五、

动手动脑(lesson 6)

动手动脑(lesson 6)

六、

动手动脑(lesson 6)

动手动脑(lesson 6)

七、

动手动脑(lesson 6)

动手动脑(lesson 6)

八、多态概念知识点

动手动脑(lesson 6)

动手动脑(lesson 6)

九、

动手动脑(lesson 6)

动手动脑(lesson 6)

十、

动手动脑(lesson 6)

m=d; d=(Dog)m; c=(Cat)m;正确

其他错误.

因为子类对象可以直接赋给基类变量,而积累对象必须通过强制类型转换。两个类型不相关的变量无法互相赋值。

十一、

动手动脑(lesson 6)

运行结果:

动手动脑(lesson 6)

答:前两个数据没有问题,问题出在后面三个数据,原本我的估测是倒数第三个输出的是100,倒数第二个输出的是201,最后一个输出201。而最后如果输出parent的value是101,而child的value是201。说明输出结果是调用方法的问题。虽然说调用的父类的方法,实际上父类方法已经被子类覆盖,所以下面都是调用的子类的方法,而实际上变量是不参与多态的,只有方法会参与多态。以下是老师给出的解答:

动手动脑(lesson 6)

动手动脑(lesson 6)