什么使一个类型与类不同,反之亦然?
(在一般语言不可知的意义上)
以下答案来自Gof book(Design Patterns)
对象的类定义了对象的实现方式.该类定义了对象的内部状态及其操作的实现.
相反,对象的 类型仅指其接口 - 它可以响应的一组请求.
对象可以有多种类型,不同类的对象可以具有相同的类型.
//example in c++ templateconst T & max(T const & a,T const &b) { return a>b?a:b; //> operator of the type is used for comparison }
max函数需要一个带有operation>的类型作为其中一个接口,满足上述要求的任何类都可以用来为该类生成特定的max函数.
我一直认为"类型"是"阶级"和"原始"的总称.
int foo; // Type is int, class is nonexistent.
MyClass foo; // Type is MyClass, class is MyClass
受维基百科的启发......
在类型理论术语中;
甲类型是一个抽象接口.
类型通常代表名词,例如人,地点或事物,或名义化的东西,
甲类表示的类型的实施方式.
它是一个具体的数据结构和子程序集合
不同的具体类可以生成相同抽象类型的对象(取决于类型系统).
*例如,可以实现具有两个类的类型 :( 对于小堆栈而言速度很快,但是扩展性很差)和(对于小堆栈,可以很好地扩展但是开销很高).*Stack
SmallStack
ScalableStack
类似地,给定的类可能有几个不同的构造函数.
香蕉的例子.
一种
Banana
类型通常代表香蕉的特性和功能.这些
ABCBanana
和XYZBanana
类将代表生产香蕉的方式.
(现实生活中不同的香蕉供应商,或在视频游戏中代表和绘制香蕉的不同数据结构和功能).所述
ABCBanana
然后类可以产生特定香蕉其是 实例的的ABCBanana
类,它们将对象的类型香蕉.
程序员为类型提供单一且唯一的实现并不罕见.在这种情况下,类名通常与类型名称相同.但是仍然存在一种类型(如果需要可以在接口中提取),以及构建类的实例(对象)的实现(将实现单独的接口).
Type是所有可用对象模板或概念的总称.类是一个这样的对象模板.结构类型,整数类型,接口类型等也是如此.这些都是类型
如果你愿意,你可以这样看:类型是父概念.所有其他概念:类,接口,结构,整数等都继承自这个概念.它们是类型