zoukankan      html  css  js  c++  java
  • 理解对象的类(class)与对象的类型(type)之间的差别

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

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

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

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

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

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

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

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

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

    欢迎大家交流和探讨

  • 相关阅读:
    [leetcode-136-Single Number]
    [leetcode-2-Add Two Numbers]
    [leetcode-150-Evaluate Reverse Polish Notation]
    [leetcode-1-Two Sum]
    DataTable数据分页
    ToList和ToDataTable(其中也有反射的知识)
    c#解决Nullable类型的转换 (包含DataContract的序列化和反序列化以及 该例子应用在反射属性setvalue的时候有用)
    ADO.NET DataTable的复制(clone)
    OracleBulkCopy
    LIst和table的转换
  • 原文地址:https://www.cnblogs.com/Daywei/p/2059680.html
Copyright © 2011-2022 走看看