面向对象OOP

来源:互联网 发布:西门子编程电缆有几种 编辑:程序博客网 时间:2024/06/16 20:59

在C#面向对象编程中,稍有异于C++,整理一下,做个笔记.

     现实世界          ---------->          面向对象   1、静态特征                              1、字段(属性)      2、动态行为                              2、方法

类通过属性表示它的特征,通过方法实现它的功能,通过事件做出相应

从计算机的角度看,所谓对象就是将需要解决的问题抽象成一个能以计算机逻辑形式表示的封装实体。

OOP三大原则:

  1. 封装
    所谓的封装,就是用一个框架把数据和代码组合在一起,形成一个对象。遵循面向对象数据抽象的要求,一般数据都被封装起来,也就是外部不能直接访问对象的数据,外部能见到的只有提供给外面访问的公共操作(也称接口,对象之间联系的渠道)。在C#中,类是支持对象封装的工具,对象则是封装的基本单元。封装的对象之间进行通信的一种机制叫做消息传递。消息是向对象发出的服务请求,是面向对象系统中对象之间交互的途径。消息包含要求接收对象执行某些活动的信息,以及完成要求所需的其他信息(参数)。发送消息的对象不需要知道接收消息的对象如何对请求予以相应。接受者接受了消息,它就承担了执行指定动作的责任,作为消息的答复,接受者将执行某个方法来满足所接受的请求。
  2. 继承
    继承就是父类和子类之间共享数据和方法的机制,通常父类称之为基类,子类称为派生类。一个基类可以有任意数目的派生类,但是一个派生类只能继承自一个父类,而想要多个基类继承,只能通过接口实现,而这个也被同桌形象的称之为“一个孩子只能有一个爹(父类)”,我给他加了一句“但可以有多个干爹(接口)”。故,C#跟Java一样,不支持多重继承,而C++则支持。

  3. 多态
    在面向对象编程中,多态是指同一个消息或操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
    多态包含:静态多态和动态多态
    在具体的多态实现方式上可以有:接口多态、继承多态、通过抽象类实现的多态
    而在这里先只讨论一下继承多态,它有方法重载(overload)方法重写(override)
    1>、 方法重载(overload)条件:
    1、在同一个类中
    2、方法名相同
    3、参数列表不同(形参个数、形参类型)
    它是静态绑定,编译时绑定,即在编译时进行参数比对找到合适的方法。
    2>、 方法重写(override)条件:
    1、具有继承关系
    2、方法名相同
    3、父类virtual方法,子类override方法
    它是动态绑定,运行时绑定,即在程序运行过程中进行方法调用。

0 0
原创粉丝点击