Implementation of Polymorphism

原创 2004年12月31日 09:55:00

class Class1
{
  public:
    m_data1;
    m_data2;
    memfunc();
    virtual vfunc1();
    virtual vfunc2();
    virtual vfunc3();
};


Class1 object instance:

   ━━━━━━━━━
  ┃  vptr    ┃ ──>      vtable
       ━━━━━━━━━       ━━━━━━━━━  
     ┃    m_data1               ┃     ┃    (*vfunc1)()          ┃──>Class1::vfunc1()
      ━━━━━━━━━         ━━━━━━━━━
    ┃    m_data2               ┃     ┃ (*vfunc2)()             ┃──>Class1::vfunc2()
      ━━━━━━━━━         ━━━━━━━━━
                                                   ┃ (*vfunc3)()              ┃ ──>Class1::vfunc3()
                                                     ━━━━━━━━━
class Class2: public Class1 {

  public:
    m_data3;
    memfunc();
    virtual vfunc2();
 
};
Class2 object instance:
    ━━━━━━━━━
   ┃  vptr    ┃──>      vtable
    ━━━━━━━━━         ━━━━━━━━━  
   ┃    m_data1              ┃     ┃ (*vfunc1)()             ┃──>Class1::vfunc1()
    ━━━━━━━━━         ━━━━━━━━━
   ┃    m_data2              ┃     ┃ (*vfunc2)()             ┃──>Class2::vfunc2()
    ━━━━━━━━━         ━━━━━━━━━
   ┃    m_data3              ┃     ┃ (*vfunc3)()             ┃──>Class1::vfunc3()
    ━━━━━━━━━         ━━━━━━━━━           Class2::memfunc();

重写(override),重载(overload),多态(polymorphism)

表面看起来似乎很容易混淆,其实区别很大,主要是使用场景不同。 1.重写,一般是用于子类在继承父类时。 父类和子类,只是函数内部的实现不一样,其他都必须一样。 2.重载,一般是用于在一个类内实现若...
  • crzc123
  • crzc123
  • 2015年06月25日 22:07
  • 316

Java的Polymorphism多态-笔记(面向对象3-多态)

Java - Polymorphism多态本文参考这里多态,让一个对象拥有多种形式(forms)。 面向对象编程(OOP)中,多态的常见用法是:父类型引用,指向子类型对象(The most com...
  • Tyronne
  • Tyronne
  • 2015年03月19日 18:23
  • 1590

C++中Polymorphism的实现

C++中Polymorphism的实现
  • fengbingchun
  • fengbingchun
  • 2016年08月07日 15:20
  • 1295

Hibernate中polymorphism=”explicit”和polymorphism=”implicit”区别

详见我的另一篇博文:“Hibernate三种继承关系”中“隐身多态和显示多态的区别”章节内容    链接: http://blog.csdn.net/pursuer211/article/de...
  • pursuer211
  • pursuer211
  • 2013年12月14日 14:17
  • 2648

c++多态 polymorphism

理解多态的实质点内容
  • keyouan2008
  • keyouan2008
  • 2010年07月29日 16:56
  • 1341

Refactoring Day 31 : Replace conditional with Polymorphism

The last day of refactoring comes from Fowlers refactoring catalog and can be found here. This ...
  • mydriverc2
  • mydriverc2
  • 2015年11月10日 16:49
  • 193

多态解读

多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 多态有两种表现形式:重载和覆盖...
  • Seven__Mo
  • Seven__Mo
  • 2015年09月19日 19:33
  • 340

简化条件表达式之六 :Replace Conditional with Polymorphism(以多态取代条件式)

你手上有个条件式,它根据对象型别的不同而选择不同的行为。 将这个条件式的每个分支放进一个subclass 内的覆写函数中,然后将原始函数声明为抽象函数(abstract method)。 ...
  • yuwei629
  • yuwei629
  • 2013年05月07日 16:19
  • 772

面向对象编程中的多态(polymorphism)

多态的定义:如果编译时和运行时类项不一样就会出现所谓的多态(polymorphism),多态可以向上转型。 编译时类项:声明该变量时使用的类型决定 运行时类项:实际赋给该变量的对象决定 实现多态的技术...
  • weichuang_1
  • weichuang_1
  • 2015年11月17日 19:26
  • 468

Hibernate性能调优

在对hibernate的掌握过程中,得到了范凯先生的多次精心指点,让我少走了很多弯路,上次有缘在CSDN英雄大会上与他恳谈,受益匪浅。在此致谢。我们先看一下常见的一个问题:inverse = ?我们考...
  • jaminwm
  • jaminwm
  • 2007年12月25日 20:05
  • 4356
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Implementation of Polymorphism
举报原因:
原因补充:

(最多只允许输入30个字)