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

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

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

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

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

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

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

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

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

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

欢迎大家交流和探讨


原文链接: https://www.cnblogs.com/Daywei/archive/2011/05/27/2059680.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/26292

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午3:58
下一篇 2023年2月8日 上午3:59

相关推荐