第一百六十九章 面向对象编程(2/2)
「额。。。可以这么说吧」,李力想了想,虽然感觉不对,但是又不知道哪儿不对,「举一个更接近我们工作中的例子,我们在设计传输模块的时候,如果将模块本身看作一个对象,那么其端口,传输地址,选择信道和编码类型就是它的属性,而打开传输,挂起传输,结束传输就是它的方法。」
「嗯,描述清晰,继续。」
「在面向对象的体系中,最主要的还有一个,那就是接口,用来表示一个物体能够做什么事情的特殊对象。」
「接口?」
「没错,如果用语言来描述他们,接口更像是指『可被如何的』。」
「什么意思?」
「走是一个行为,但是很显然人走路的方式和动物走路的方式并不一样,人是两条腿,动物是零条,两条和四条,然而只要是动物就都有走这个行为,于是我们可以一个接口叫『可以走路』的接口,里面只有一个行为叫『走』,但是这个这个行为没有具体细节。
「人和其他动物都可以继承这个接口,但是到底是用几条腿走路就取决于具体每一个动物的实现。」
「但是。。。这么设计有什么用呢?」樾樾问道。
「如果仅仅是一种定义,那么确实没有多大用处」,李力笑了笑,「但是这个世界上所有的对象都是交互的,不可能单独存在,当动物遇到危险事件的时候,人可以用双脚走,猫狗可以用四只脚走,鱼可以用零只脚走,因为他们都继承了『可以走路』这个接口,从而顺利地躲避危险。
「但是很显然,植物不能走,因为它们没有继承这个接口,这是动物专用接口。」
樾樾想了想,然后指出,「那这么说来,这个接口不能叫『可以走路』,而是『可以移动』,里面的方法也应该是『移动』才对,毕竟鱼走得不是路,游动也并不是走路。」
李力听了这话,突然笑了起来,「这个就是抽象化,恭喜你,你现在已经面向对象编程了。」
「所以,你说的划时代的意义是指什么呢?」樾樾又问。
李力沉默了下来。
他望着远处碧蓝如洗的天空,一望无垠的红土,眼睛却偶尔聚焦到虚无的地方,但是他知道,无论他聚焦到了哪里,在他看不到的地方,无数游离的魔法元素正在飘荡,作用或消失。
许久,他才缓缓说道:「如果没有魔法,面相对象的概念也仅仅是个概念,他能够以万物皆对象的方式描述世界上的一切,却无法改变这个世界,就像植物无法继承『可以移动』这个接口,因为没有一个伟大的存在来编写植物移动的实例方法。」
樾樾挑了挑眉头,她似乎有些明白了李力想要说的,「魔法可以强行赋予一个对象它本身不继承的接口,来获得它本身没有的能力,就像通过『应激』符文赋予植物运动能力一样。」
「之前我也想过这个问题,难道符文确实是一种编辑世界本身的编程语言?但是我现在又开始怀疑,或许符文仅仅是一种接口,用符文催动魔法作用于物体的时候,就像是将原本没有继承某个接口的物体继承这个接口,而实例则由魔法元素来进行编写。」
樾樾用一分钟的时间仔细地琢磨清楚了李力的话,然后倒吸一口凉气,满脸不敢相信地说:「小伙子你的脑洞开得也太大了点吧。」
「。。。这不叫脑洞,这叫魔法理论研究」,李力翻了个白眼,「所以我的意思是,不如我们把这个姑娘拐到这里来帮我们研究理论魔法,怎么样?」
「咦?推荐信不是给我们的吗?」
「是推荐到大学本部的」,李力摆摆手,「不过问题不大,就说这里是北方魔导工业高等学校魔导计算机分院好了。」
樾樾:「。。。把人家一小姑娘拐到这种鸟不拉屎的地方来,你就不怕被他爸爸打死?」
「怕什么,反正有你。」
话音刚落,一声怒吼从主楼后面响起,划破长空而来,声音愤怒而凄惨:
「啊!!!!!!!老子的优育三号!!!!!!老子辛辛苦苦种出来的改良西瓜!!!!!!!老子的二毛啊!!!!!!是谁!!!!!!我要扒了你的皮!!!!!!!!!!」
「卧槽,被发现了!」听到这声怒吼,李力瞪大双眼,一把拉着樾樾的手,和她一起蹲了下来,借着花坛的掩护和巨石的缝隙小心翼翼地向后看去,看到卫青还没有发现这两个偷瓜贼,连忙将盛着瓜皮的盘子塞到樾樾手里,「快快快。。。塞到你随身空间里。」
「原来这个瓜是用来做实验用的吗?」樾樾有些古怪地看向自己的吃货男朋友,「你早就知道?」
「没事没事,反正他瓜田里还有大毛三毛四毛五毛六毛七毛和尼古拉斯·施瓦辛格·汉尼拔,少这么一个也没事。」
「等等,最后一个名字是怎么回事?」
「我给起的,不过现在最主要的还是别让他发现。。。」
「不是有我么,你还怕他扒了你的皮?」
「少废话,因为我理亏!甭管了,趁他没发现赶紧撤,走走走走。。。」一边说着,一边拉着樾樾的手撤离了案发现场,向远处流窜而去。