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
    虚函数     --------   普通函数
    纯虚函数   --------   抽象函数
    抽象类     --------   抽象类
    虚基类     --------   接口
                  
    我觉得还是很贴切.        
  • 相关阅读:
    作业十三
    作业十二
    第十一次作业
    编译原理第十次作业
    P3388 【模板】割点(割顶) 题解 (Tarjan)
    BuaacodingT141 microhhh的回城 题解(模拟)
    P2055 [ZJOI2009]假期的宿舍 题解(二分图)
    P2764 最小路径覆盖问题 题解(二分图)
    2019.2-2019.3 TO-DO LIST
    P3369 【模板】普通平衡树 题解(Splay/FHQ)
  • 原文地址:https://www.cnblogs.com/tuantuan/p/354347.html
Copyright © 2011-2022 走看看