感悟
从这章开始,才算真正进入面向对象的主题,需要好好理解和体会。复用类是面向对象的基石之一,开篇便说了组合、继承两种方式,这个针对的是一个新类中的写法,在这个新类上做文章。
笔记
- 7.1 组合语法
1、要理解 toString()方法,打印的时候会自动调
2、要注意组合的类正确初始化
- 7.2 继承语法
1) 初始化基类
1、extends关键字的用法
2、初始化构造器,默认无参与super指定有参构造器
- 7.3 代理
1、一种中庸之道,区别于组合和继承
2、一方面组合代理的类,一方面又对外提供代理类相同的接口
3、有更多控制力,可以只提供成员对象中方法的子集
- 7.4 结合使用组合和继承
1)确保正确清理
2)名称屏蔽
利用组合和继承,构建复杂的类,同时要注意重写和重载
- 7.5 在组合和继承之间选择
1、引出 is-a 是一个, 还是has-a 有一个
- 7.6 protected关键字
除了原先的包内访问权限,因为引入继承,继承类的导出类都可访问
- 7.7 向上转型
1)为什么称为向上转型
2)再论组合与继承
1、引出了面向对象中的一个重要概念向上转型,后面几乎到处使用
2、引出了一个原则,新类是否需要向上转型,需要则选继承,否则选组合
- 7.8 final关键字
1)final数据
2)final方法
3)final类
4)有关final的忠告
引出final的用法,并说明其作用,在组合和继承过程中,final的用法必不可少
- 7.9 初始化及类的加载
1)继承与初始化
理解初始化顺序很重要:加载类->初始化静态基类变量->初始化静态导出类变量->基类构造器->导出类构造器
- 7.10 总结
组合复用组合类的底层实现,继承复用接口通过向上转型。
理解组合和继承初始化过程