面试问题:对象和面向对象语言之间的区别

时间:2010-04-28 18:49:33

标签: oop programming-languages

我的朋友被问到以下问题:对象语言和面向对象语言之间有什么区别?

这是一个有点难以理解的问题。术语“对象语言”对应什么?这是否意味着“纯粹的”面向对象语言,如Wikipedia article所说:

  

语言称为“纯”OO语言,因为它们中的所有内容都被一致地视为一个对象,从字符和标点符号等原语一直到整个类,原型,块,模块等。它们是专门设计的为方便,甚至强制执行OO方法。示例:Smalltalk,Eiffel,Ruby,JADE,VB.NET。

3 个答案:

答案 0 :(得分:17)

除非一位哲学家在谈论一个抽象的元语言,或一位老派工程师在谈论编译器产生的最终结果时,这个问题听起来像一个不会说同一种语言的人进行语义手淫。其他行业。

换句话说,区别在于采访者想要的是什么。 (或许这个问题听错了)。我不认为大多数开发人员会认为这些术语足够相关,值得比较和对比。

正确的回应可能是精神分析师的风格:你认为这意味着什么?提出澄清问题,以确保您了解面试官的要求和假设。然后离开,不要回电话给雇主,因为你不想在那里工作。

答案 1 :(得分:4)

  • 术语对象没有正式的,广泛使用的或其他众所周知的定义。
  • 术语对象语言没有正式的,广泛使用的或其他众所周知的定义。
  • 术语面向对象确实有官方定义,但这通常被完全忽略,没有广泛使用,也没有其他众所周知。
  • 术语面向对象语言没有单一的官方,广泛使用或其他众所周知的定义,它通常被理解为是指
    • 一种可以进行面向对象编程的语言或
    • 一种语言,其中只能面向对象编程或
    • 一种面向对象编程很容易的语言或
    • 一种语言,其中面向对象的编程很容易,非面向对象的编程很难或
    • 一切都是对象或
    • 的语言
    • 上述任何组合或
    • 完全不同的东西(并注意在上面的任何一个中你可以用“object”和“面向对象”替换任意定义)

简而言之:面试问题粗略地转化为“这件事之间有什么区别我不会告诉你它是什么,而另一件事我也不会告诉你它是什么?”

答案 2 :(得分:0)

我怀疑面试官正在寻找object-basedobject oriented之间的区别。

例如,这是在C中使用结构,没有多态或继承。

C和C ++的两者之间的区别是here