• 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
    虚函数     --------   普通函数
    纯虚函数   --------   抽象函数
    抽象类     --------   抽象类
    虚基类     --------   接口
                  
    我觉得还是很贴切.        
  • 相关阅读:
    Android中ExpandableListView控件基本使用
    GitHub具体教程
    Could not load file or assembly'System.Data.SQLite.dll' or one of its depedencies
    Codeforces Round #253 (Div. 1) B. Andrey and Problem
    c语言中的位移位操作
    深入浅出JMS(一)——JMS简单介绍
    Java回顾之集合
    Java回顾之网络通信
    Java回顾之I/O
    Java回顾之多线程同步
  • 原文地址:https://www.cnblogs.com/tuantuan/p/354347.html
Copyright © 2020-2023  润新知