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

前端之家收集整理的这篇文章主要介绍了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模板.

原文链接:https://www.f2er.com/ruby/267454.html

猜你在找的Ruby相关文章