seegongsik
我的单词本
编程

把共同之处传下去:继承

用对象做出了「一个东西」(第12课)。 可把狗、猫、鸟都做成对象, 名字、年龄、吃,会一遍遍地重复。 把重复的共同之处放到一处, 让每个去继承,这就是继承。

01

一再重复的部分

狗、猫、鸟,都能做成对象。
可把三个并排一看,
名字、年龄、吃,三个里都一样地放着。
等于把同样的东西写了三遍。
种类越多,这重复就越大。

名字
年龄
名字
年龄
名字
年龄

看狗、猫、鸟。重复的名牌一起亮起来。

重复的部分,一眼就看出来了。
这样把同样的东西在每个对象里又写一遍,
改一个,就得一个个全改。
那么,这共同之处该放到哪儿好呢?

02

把共同之处提到上面

把重复的名字、年龄、吃,
往上拉到一个地方。
在那儿放一个叫「动物」的父。
现在,共同之处只在「动物」这一处。
狗、猫、鸟,成了它下面的子。

名字
年龄
名字
年龄
名字
年龄

点一下,把共同之处提上去。出现一个「动物」父。

把共同之处聚到一处,
子那边就轻多了。
可子们现在没有名字、年龄、吃了?
不是没了,而是从父那里拿过来。

03

原样继承父的东西

子会自动拥有父所有的一切。
狗把「动物」的名字、年龄、吃,
不用再写,就原样继承过来。
所以狗,已经是个堂堂正正的动物。
是拿过来的,不是抄出来的。

动物
名字 · 年龄 · 吃
选一个子

选一个子。父的名牌降下来,原样填进去。

狗、猫、鸟,
都从父「动物」那里一样地继承了。
可三个只是一样,就不算种类了。
狗会叫,鸟会飞。那要怎么加上去?

04

在拿到的之上,加自己的

继承来的共同之处原样保留,
在它之上,加上自己专属的。
狗加「叫」,鸟加「飞」。
父一样,但加的不同,
狗和鸟,就成了不同的种类。

动物 : 名字 · 年龄 · 吃
名字
年龄

给子加上自己专属的名牌。它和继承来的颜色不同。

现在狗是「动物的共同之处 + 叫」。
拿到的和加上的,合成了一体。
共同放父,差异放子。
靠这个结构,最后还跟来一个大好处。

05

改一次,全都一起变

继承真正的力量,就在这里。
往父「动物」加一个「睡」,
狗、猫、鸟,一下子全都能睡了。
不用一个个改子,全都一起变。
重复消失了,出错也跟着减少。

动物
名字
年龄
名字
年龄
名字
年龄
名字
年龄

给父加一个新名牌。所有子同时都有了它。

从值开始,用对象做出「东西」,
用继承,把那些东西整整齐齐地归拢。
如今我们手里,已经有一个相当大的程序了。
可程序,总会在某处出岔子。
下一课,我们去学怎么找出并修好那处岔子。

一句话总结继承,是把好几个对象的共同部分,在「父」里只放一次,让「子」们原样继承它,再加上自己专属的。改一次父,所有子就一起变,重复消失,也保持一致。
编程
如果有帮助,请支持我们