你得明白,程序开发就像人的学习一样,是一个渐进的过程。不论你作过多少分析,不实际做项目的话,还是得不
到答案。如果你能摒弃像建玻璃摩天楼那样毕其功于一役的开发方式,而采用类似生物进化的,让那个项目逐步的“
增长”的开发方式,那么你就会获得更大的成功——以及更多的及时反馈。
把派生类传给基类就是沿着继承图往上送,因此被称为“上传(upcasting)”。上传总是安全的,因为你是把一个较具
体的类型转换成较为一般的类型。也就是说派生类是基类的超集(superset)。
合成还是继承,再探讨:在面相对象的编程中,最常见的编程和使用代码的方式还是将数据和方法简单地封装成类
,然后再使用那个类的对象。你也可以通过合成,在现有的类的基础上创建新的类。继承则不太常用。在判断该使
用合成还是继承的时候,有一个最简单的办法,就是问一下你是不是会把新类上传给基类。如果你必须上传,那么
继承就是必须的,如果不需要上传,那么就该再看看是不是应该用继承了。
final 的三种用途:数据(data),方法(method)和类(class)。
尽管面向对象的编程会反复强调继承,但是当你着手设计的时候,通常情况下还是应该先考虑合成,只有在必要的
时候才使用继承。合成会更灵活。
//复用类这章终于看完了,现在有种当年看<c++编程思想>的感觉了:简单问题复杂化。