理解类型和表示之间的区别

时间:2011-04-17 07:30:11

标签: language-agnostic type-theory

This article谈到了类型和类之间的区别。由于我只使用过将两者视为相同的语言,因此请提供材料/编程语言,以便教会我与众不同之处。

3 个答案:

答案 0 :(得分:2)

差异不是正确的词 - 类肯定是类型。但并非所有类型都是类。还要注意“class”这个词很模糊 - 它可能只是一个元组类型(除了构造和投影之外没有任何操作 - 可以说是一个C结构),或者在光谱的另一边,只包含一个类方法,但没有国家。

答案 1 :(得分:1)

Sather是我所知道的最古老的语言,它分别处理类型和类。但是,它并不是完全严格的,因为人们仍然可以使用类作为变量类型(我认为),只是不能对它进行子类型化。

这与C ++允许你做的完全不同:你可以使用纯抽象类来定义类型,并让所有具体的类使用公共继承来实现它们,但是使用私有继承来相互子类化。然后,您可以使用抽象类作为变量类型,仅在构造函数表达式中使用具体类。

Java允许你做大致相同的事情,使用类使用接口和实现来定义类型,但由于没有私有继承,因此无法隐藏类的继承关系。

这有什么意义吗?

答案 2 :(得分:0)

Java,预先自动装箱。 intInteger都是类型,但只有后者才是类。