ruby是一种纯粹的面向对象编程语言,即使它不支持多重继承吗?请解释

ruby是一种纯粹的面向对象编程语言,即使它不支持多重继承吗?如果是这样的话,请解释一下.

我知道,通过允许在一个类中包含多个模块,在某种程度上可以替代缺少多重继承.

另外,我不确定纯OOP语言的所有先决条件.从this article开始,他们就提到了

a Ruby class can have only one method with a given name (if you define
a method with the same name twice,the latter method deFinition
prevails..

那么这是否意味着Ruby不支持重载方法.如果是这样,它仍然可以作为纯OOP Lanaguage的资格?如果是这样,请及时解释其背后的原因.

谢谢.

解决方法

有几种不同的面向对象语言系列.如果您正在考虑多重继承和方法重载,那么您可能来自C语境,这些事情被视为理所当然.这些约定来自C语言受到严重影响的早期语言.

Ruby并不关心对象的类型,而是关注它们能够响应的方法.这被称为duck typing,它将像Ruby这样受Smalltalk启发的语言与更正式的受SimulaALGOL影响的语言(如C)区分开来.

使用模块可以从各种来源“混合”方法并具有一种多重继承,但严格来说,一个类不可能有多个直接父类.在实践中,这通常不是什么大问题,因为继承不是添加方法的唯一方法.

由于鸭子打字,方法重载在Ruby中基本上无关紧要.在C中,你可能有各种方法来处理string,int或float类型,但是在Ruby中你有一个在任何进来时调用to_f并相应地操作它的方法.从这个意义上说,Ruby方法更像是C模板.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...