字体:大 中 小
护眼
关灯
上一章
目录
下一章
第727章 灵魂的拷问!
第(1/3)页
“不对!不对!”
就在所有人都沉浸在“继承”所带来的巨大震撼中时,一个尖锐的声音,打破了这片狂热。
众人循声望去,说话的,是逻辑组的一位数学家,姓王,是国内顶尖的数理逻辑专家。
他此刻正紧锁眉头,死死地盯着黄建功写下的那个“狗继承自动物”的简单例子。
“黄老,您这个定义,有问题!”王教授毫不客气地指了出来。
黄建功一愣:“有什么问题?”
“问题大了!”王教授几步走到黑板前,用粉笔在“狗”的旁边,又写下了一个定义。
`定义 猫 : 继承 动物 {`
` 方法: 喵喵叫();`
`}`
“按照您的理论,‘狗’是一种‘动物’,‘猫’也是一种‘动物’。”王教授说道,“现在,我有一个新的需求,我要创造一个‘机器狗’。它会跑,会叫,甚至长得也像狗。请问,我该如何定义它?”
黄建功不假思索地回答:“那也简单。`定义 机器狗 : 继承 狗`,然后再给它增加一些‘充电’之类的方法。”
“错!”王教授断然否定,“‘机器狗’继承了‘狗’,而‘狗’继承了‘动物’。那就意味着,‘机器狗’也继承了‘动物’的‘呼吸’和‘进食’方法。请问,一个机器人,它需要呼吸和进食吗?”
黄建功的脸色一僵。
这……确实是个问题。
“这……我们可以重写‘呼吸’和‘进食’方法,让它们什么都不做。”有人在下面小声提议。
“那本质上,它还是拥有了这两个它根本不应该有的‘行为’!”王教授的声音变得严厉起来,“这破坏了模型的纯洁性!一个不严谨的、可以随意打补丁的模型,最终必然会走向臃肿和混乱!”
“再比如!”王教授不给众人思考的时间,又抛出了一个更尖锐的问题。
“我们有一个‘鸟’类,它继承自‘动物’,并且有一个‘飞翔’的方法。现在,我们要定义一个‘企鹅’。‘企鹅’是一种‘鸟’,所以它应该继承‘鸟’。但是,企鹅会飞吗?不会!那它继承来的‘飞翔’方法,该如何处理?是删掉?还是让它报错?”
“还有‘鸵鸟’!还有‘鸡’!”
“这著名的‘鸟-企鹅问题’,是面向对象继承体
(本章未完,请翻页)
记住手机版网址:m.lewenwx.cc
上一章
目录
下一章