zoukankan      html  css  js  c++  java
  • 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
    虚函数     --------   普通函数
    纯虚函数   --------   抽象函数
    抽象类     --------   抽象类
    虚基类     --------   接口
                  
    我觉得还是很贴切.        
  • 相关阅读:
    POJ 2456 Aggressive cows
    POJ 1064 Cable master
    POJ 3723 Conscription
    左偏树
    tarjan模板
    [bzoj5017][Snoi2017]炸弹 tarjan缩点+线段树优化建图+拓扑
    [BZOJ4520][Cqoi2016]K远点对 kd-tree 优先队列
    [bzoj3218]a + b Problem 网络流+主席树优化建图
    #6034. 「雅礼集训 2017 Day2」线段游戏 李超树
    【UOJ UNR #1】火车管理 可持久化线段树
  • 原文地址:https://www.cnblogs.com/tuantuan/p/354347.html
Copyright © 2011-2022 走看看