持续完善 Pinda.cn 秒建营销活动 通过低代码 零代码的模式快速创建营销活动,欢迎使用 。

java与C++的虚函数比较

java与C++的虚函数比较

class base
{
    private void print()
    {
         System.out.println("base");
    }
    public void doprint()
    {
         print();
    }

}

class derive extends base
{
    private void print()
    {
         System.out.println("derive");
    }


}

class testVirtual
{
    public static void main(String args[])
    {
         base b = new derive();
         b.doprint();
    }

}
运行结果:base

----------------------------------------------------------------------------

c++例子

class base
{
private:
 virtual void print()
 {
  printf("base\n");
 }

public:
 void doprint()
 {
  print();
 }
 virtual ~base(){}
};

class derived : public base
{
 virtual void print()
 {
  printf("derived\n");
 }
};

int main(int argc, char* argv[])
{
 derived d;
 base& b = d;
 b.doprint();
 return 0;
}

运行结果:
 
derived

----------------------------------------------------------------
如果将上面JAVA中的private改为public, 则运行结果为derived

通过上面的例子, 应该可以看出C++与JAVA的虚函数异同点.

网上还有人把这二者的总结用下面的对比描述了一下:
C++                    Java
虚函数     --------   普通函数
纯虚函数   --------   抽象函数
抽象类     --------   抽象类
虚基类     --------   接口
              
我觉得还是很贴切.        
posted @ 2006-03-20 20:55  工具人Kim哥  阅读(2087)  评论(1编辑  收藏  举报
持续完善 Pinda.cn 秒建营销活动 通过低代码 零代码的模式快速创建营销活动,欢迎使用 。