【发布时间】:2015-06-02 01:14:24
【问题描述】:
面向对象的语言可以分为两种:
- 基于类:类似于 C++
- 基于原型:如 JavaScript。
Ruby 有类,所以它是基于类的。但它的类也是一个对象。那么 Ruby 仍然是一种基于类的语言,还是介于两者之间?这是第三类吗?
编辑:
好的,我想知道的是,其他基于类的语言是否也像 ruby 一样做同样的事情,比如创建 Class 类的类对象?
【问题讨论】:
面向对象的语言可以分为两种:
Ruby 有类,所以它是基于类的。但它的类也是一个对象。那么 Ruby 仍然是一种基于类的语言,还是介于两者之间?这是第三类吗?
编辑:
好的,我想知道的是,其他基于类的语言是否也像 ruby 一样做同样的事情,比如创建 Class 类的类对象?
【问题讨论】:
在面向对象的语言中,除了对象之外,类还能是什么?如果面向对象语言中最重要的东西之一不是对象,那么该语言就不会非常面向对象,不是吗?
类是许多基于类的 OO 语言中的对象。 Smalltalk、Python、Ruby、Newspeak,应有尽有。有些语言不是这样的,例如Java 和 C#,但即使在那里,您也可以获得代表类的反射代理对象。
【讨论】:
Class 是Class 类的一个实例。 Ruby 中没有任何东西反对它基于类。
【讨论】: