“这就引出了我们新世界的第三个,也是最神奇的一个法则——【多态】。”
钱学敏深吸一口气,他的情绪也因为讲到了最关键的地方,而变得有些高昂。
“多态,就是‘同一消息,不同响应’。”
“我,作为一个‘人’对象,我的桌子上,放着一个‘杯-A’和一个‘杯-B’。我并不知道A是普通杯子,B是保温杯。我只知道,它们都是‘杯子’的子类。”
“现在,我依次对它们发送同一个消息:‘自然冷却一小时’。”
“一个小时后,我再去获取它们的温度。我会发现,‘杯-A’的温度下降了很多,而‘杯-B’的温度,基本没变。”
“我发送了完全相同的指令,但两个对象,却表现出了完全不同的行为。”
“这就是多态的魔力!”
“它允许我们在不关心对象具体类型的情况下,与其进行交互。它将‘做什么’和‘怎么做’,彻底分离开来!”
“封装,继承,多态。”
钱学敏用粉笔,将这三个词,重重地圈了起来。
“这三者,共同构成了‘面向对象’这个新世界的基石!”
“封装,是世界的基本单元。继承,是世界的组织方式。而多态,是世界运转的活力之源!”
“轰——”
如果说,之前的“封装”只是踹开了一扇门。
那么,此刻的“继承”和“多态”,就像两颗重磅炸弹,在所有人的脑海里,炸开了花。
整个会议室,彻底沸腾了。
“天哪……原来是这样!”
“复用……扩展……这不就是我们一直梦寐以求的吗?”
“我明白了!‘做什么’和‘怎么做’分离!这……这简直是天才的设计!”
“一个‘动物’的引用,既可以指向一只‘猫’,也可以指向一只‘狗’。当我调用‘发出声音’方法时,猫会‘喵喵’叫,狗会‘汪汪’叫!系统……系统它自己知道该怎么做!”
孙立国站在人群中,激动得浑身发抖。
他终于明白了。
他之前错得有多离谱。
他只看到了数据,却没看到数据背后的“契约”和“行为”。
而黄建功,这位“过程式”编程思想最坚定的捍卫者,此刻,也彻底被征服了。
他呆呆地看着黑板上那个由“杯子”和“保温杯”组成的简单的继承关系图。