理解对象的类(class)与对象的类型(type)之间的差别

       一个对象的类定义了对象是怎样实现的,同时也定义了对象的内部状态和操作的实现。但是对象的类型只与它的接口有关,接口即是对象能响应的请求的集合。一个对象可以有多个类型,不同类的对象也可以有相同的类型。

      当然,对象的类和类型是有紧密关系的。因为类定义了对象所能执行的操作,也定义了对象的类型。当我们说一个对象是一个类的实例时,即只该对象支持类所定义的接口。

      C++语言的类既指定对象的类型又指定对象的实现。smalltalk程序不声明变量的类型,所以编译器不检查赋给变量的对象类型是否是该变量类型的子类型。发送消息时需检查消息接收者是否实现了该消息,但不检查接收者是否是某个特定类的实例。

可能大家对上面的解释越搞越晕,其实我也很晕,这些最基本的概念就我而言我还不是很清楚,个人认为还是有必要搞清楚的。

在这里再理解几个基本概念

  类型:是用来标识特定接口的一个名字。

  类的类型:是由字段数据(成员变量)和操作字段数据的成员(属性、方法、构造函数、事件等)所构成的自定义类型。其中字段数据表示类实例(对象)的状态。

 对象的接口:对象声明的每一个操作指定操作名、作为参数的对象和返回值,这就是所谓的操作的型构(signature)。对象操作所定义的所有操作型构的集合被称为对象的接口。

对象接口描述了该对象所能接受的全部请求的结合,任何匹配对象接口中型构的请求都可以发送给该对象。

欢迎大家交流和探讨

原文地址:https://www.cnblogs.com/Daywei/p/2059680.html