棉花糖小说网
会员书架
首页 >其他类型 >四进制造物主 > 第一百二十四章 面向对象

第一百二十四章 面向对象

上一页 章节目录 加入书签 下一章

对象。每个对象都有和模板相同的属性和方法,但它们各自的数据可以不尽相同。

比如,狗和猫都是哺乳动物,都是对象。它们都全身被毛、运动快速、恒温胎生、体内有膈,但长得不一样。它们都能用肺呼吸、能跑能跳、能嗷嗷叫、能动脑子,但狗是汪汪叫,猫是喵喵叫。它们各自的数据不同。”

艾达否说完,幽幽地望着卢赫,脸上竟然带着一丝期待。

卢赫转了转眼珠,“面向对象搞得这么复杂,相对于面向过程有什么优越性吗?”

“很好。”艾达否满意地点了点头,“我那些三年了连接口文档都看不懂的师弟师妹们也曾问过这个问题。

面向对象的优越性,在于继承和多态。

我们刚刚定义了一个名为哺乳动物的类对吧,哺乳动物可以被称为一个基类,或者父类。而狗和猫,都是它的子类。

这个很好理解,跟动物分类学一样,界门纲目科属种,大类下面有小类,逐级划分。

倘若有一天,你升天之后成为了造物主,闲着没事想要自己创造一个新的哺乳动物。注意你要创造哺乳动物,也就是不论你设计出了什么逆天东西,它都得符合哺乳动物的属性和方法,被归为哺乳纲。

这个时候,你不用从头开始去编写它的基因、去从一团泥巴开始捏泥人,而是可以命名一个子类,让它继承父类的属性和方法,自动成为哺乳动物,用肺呼吸、能跑能跳、能嗷嗷叫、能动脑子。

也许你还想要给这个世界一个小小的震撼,让这个哺乳动物有一些逆天的功能,比如一蹦三尺高、不好好四脚走路非要滚着走。你就可以覆写子类的方法,用你所定义的‘能跑能跳’去代替父类一般意义上的能跑能跳。这个就叫做多态。

进一步的,如果有一天你心里不太舒坦,想要对世间万物降下惩罚,让它们每走两步必须仰天长叫一声。这个时候你不需要重新定义父类和子类,只需要写一个函数,就可以实现你的恶趣味。

你只需要把子类传入函数中,函数本身并不事先知道你传的是猫还是狗,但是当你给它猫时,它就喵喵叫,给它狗时,它就汪汪叫。

这就是多态的威力。”

艾达否说完,眨巴着眼,“听懂了吗?这些概念十分抽象,和指针一样,被称为编程初学者的拦路虎。”

卢赫若有所思,好像有点悟了,“这么精妙的设计,它的创造者一定个天才。”

艾达否看到卢赫的反应,一脸神棍像地坐直身,意味深长地说:

“人从自然中来。面向对象的创造者alan kay拥有生物学背景,他只是在模仿而已。”

点击切换 [繁体版]    [简体版]
上一页 章节目录 加入书签 下一章