java与c++在虚函数方面的异同

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
虚函数     --------   普通函数
纯虚函数   --------   抽象函数
抽象类     --------   抽象类
虚基类     --------   接口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值