Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300674
  • 博文数量: 81
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 952
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-31 22:05
文章分类

全部博文(81)

文章存档

2011年(1)

2010年(1)

2009年(79)

我的朋友

分类: C/C++

2009-08-06 13:59:22

所谓多态性是指:通过继承相关的不同的类,他们的对象能够对同一个函数调用作出不同的响应。多态性是通过虚函数实现的。当通过基类指针或引用请求使用虚函数时,C++会在与对象关联的派生类种正确地选择重定义的函数。

多态性就是多种表现形式,具体来说,可以用"一个对外接口,多个内在实现方法"表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点 或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。
  “多态性”一词最早用于生物学,指同一种族的生物体具有相同的特性。在面向对象理论中,多态性的定义是:同一操作作用于不同的类的实例,将产生不同的执行结果,即不同类的对象收到相同的消息时,得到不同的结果。多态性包含编译时的多态性 运行时的多态性两大类。
  动态多态是指发出同样的消息被不同类型的对象接收时,有可能导致完全不同的行为。即,在用户不作任何干预的环境下,类的成员函数的行为能根据
  调用它的对象类型自动作出适应性调整,而且调整是发生在程序运行时。
  多态是面向对象程序设计的重要特征之一。是扩展性在“继承”之后的又一重大表现 。
  举例子说明一下:
  #include
  class A {
  public:
  virtual void test() { cout<<"aaa"<   //void test() { cout<<"aaa"<   };
  class B:public A
  {
  public:
  void test() {cout<<"bbb"<   };
  class C:public B
  {
  public:
  void test() {cout<<"ccc"<   };
  void main()
  {
  C cc;
  A *p=&cc;
  p->test();
  }
阅读(477) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~