一、教材学习内容总结
在第五章的学习中,了解到三个比较重要的关键字。第一是用extends来定义子类,因为java不支持多重继承,所以每个类只有一个父类;而且任何类都是object类的子类,还有就是没写关键字extends,则为object类的子类;第二个是成员变量的隐藏,这就需要用到了关键字super操作子类隐藏的变量;第三个是关键字final,final类不能被继承,如果用final修饰方法,则这个方法不允许子类重写;第四个是关键字abstract,对于abstract方法,只允许声明,不允许实现(没有方法体),而且不允许final和abstract同时修饰衣蛾方法或类,也不允许static修饰abstract方法。
接下来就是继承,java中会使用到包,那么同一个包或者不同一个包继承了什么?首先,在同一个包中继承的有公有,保护以及友好,不同的包中继承只有公有和保护。后面就是上转型,假如说A父类有一个对象a,子类有一个对象b,将b赋给a,则a成为b对象的上转型对象。这里还有一个就是多态,多态是指使用父类对象时,父类对象只有一个,将多个子类的行为赋给父类,则父类会表现出不同的行为。多态通父-子重写为上转型,上转型是多态的表现方式。
|
方法重载 |
方法重写 |
概念 |
一个类中可以有多个方法具有相同的名字,但是这些方法的参数必须不同,即或者参数的个数不同,或者是参数的类型不同。 |
方法的名字参数个数、参数的类型和父类的方法完全相同。 |
举例 |
float hello(int a,int b){} float hello(long a,int b){} Double hello(double a,int b){}
|
Class A{ Float computer(float x,float y){return x+y;}...} Class B extends A { Float computer(float x,float y){return x*y;}
|
|
普通类(非abstract类) |
abstract类 |
区别 |
不可以有abstract方法 |
可以有abstract方法,也可以有非abstract方法 |
可以用new运算符 |
不能用new运算符创建对象 |
二、教材中的学习问题和解决过程
1、一个类的各个子类是怎样体现多态的?
通过重写方法。
- 子类可以有多个父类吗?
不可以,因为java不支持多重继承。
- 父类的final方法可以被子类重写吗?
不可以,因为不允许子类隐藏可以继承的final方法。
- 其他(感悟)
这周比较特殊,纯理论,没有时间上机敲代码。但是这周的纯理论课的内容也很多,有一些比较容易理解,有一些太难理解了,特别是课本上的开-闭原则,但是我也懂得了很多。
- 学习进度条
|
代码行数(新增/累积) |
博客量(新增/累积) |
学习时间(新增/累积) |
重要成长 |
目标 |
5000行 |
30篇 |
400小时 |
|
第一周 |
10行 |
1篇 |
3小时 |
|
第二周 |
20行 |
2篇 |
10小时 |
|
第三周 |
20行 |
3篇 |
10小时 |
|
第四周 |
30行 |
4篇 |
3小时 |
|
第五周 |
50行 |
5篇 |
5小时 |
|
第六周 |
10行 |
6篇 |
5小时 |
|