20162316刘诚昊 第八周学习作业
学号20162316 2016-2017-2 《程序设计与数据结构》第八周学习总结
教材学习内容总结
- 1.继承时,子类不会继承父类的构造函数,在调用子类的构造函数时会自动调用父类的构造函数。(编译子类时会自动在子类构造函数上加“super()”)至于调用哪个构造函数,根据super后面括号里的函数决定。
- 2.在具有父子关系的两个类中,父类和子类各有一个函数,这两个函数定义(返回值类型,函数名,和参数列表)完全相同,则称为重写。
- 3.一个引用能调用哪些成员(变量和函数),取决于这个函数的类型。
- 4.对象的转型分为向上转型和向下转型。
- 5.无论p指向一个什么样类型的变量,那么这个p怎么样的属性,什么样的成员函数,取决于它的类型里面是怎么定义的。
教材学习中的问题和解决过程
- 问题1:“is - a”的关系具体为何?
- 解决问题1的办法:网上搜索
he is a people
he has a head
我是一个男人 is-a
我有一个女人 has-a
is_a 用于继承
has_a 是组合 一个类中包含了其他类
一般我们认为继承可以分为两种基本的形式:实现继承和接口继承。
实现继承的主要目标是代码重用:
我们发现类B和类C存在同样的代码,因此我们设计了一个类A,用于存放通用的代码。
基于这种思路的继承称为实现继承。
接口继承不同,它是基于现实生活中的语义的,表现了IsA的关系。
代码调试中的问题和解决过程
本周没有新敲代码,而是回顾之前光赶进度而复制的别人的代码。
- 问题:在重写时,子类的构造函数在调用父类构造函数时如何区分构造?
- 解决方法:在老师给的视频中了解到,括号中的参数列表决定了调用的方法。
代码托管
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 83/83 | 1/5 | 20/20 | |
第二周 | 409/500 | 1/6 | 18/38 | |
第三周 | 1548/1000 | 2/8 | 22/60 | |
第四周 | 300/1300 | 1/9 | 30/90 | |
... | ... | ... | ... | |
第七周 | 600/2877 | 1/12 | 23/133 | |
第八周 | 0/2877 | 1/13 | 13/146 |