以前初略学过c++,在学习java的过程中想到一个问题,就是java中没有提到到虚函数一词,可好像又有一点虚函数的意思在里面,本人比较迷惑,请高手指点.

解决方案 »

  1.   

    c++中定义为虚函数后才能在继承中动态的调用函数。Java中的继承的函数本来就有这个功能。
      

  2.   

    java中的应该都是虚函数吧,不是很确定
      

  3.   

    在C++中有关虚函数的概念:
    虚函数是类中声明的一个非静态成员函数,在类中该函数声明之前冠有关键字virtual,我们将这种带有虚函数的类称为多态类,这种类提供了相同的操作接口,但能服务于不同的应用需求。当基于父类的抽象设计程序,而所设计的程序又要能适应子类在操作上的变化时,要使用虚函数通知编译器这种可能的变化,使编译器为虚函数生成特别的代码,以便在运行时对虚函数调用采用动态束定,而不是静态束定。因为java里面没有多重继承概念,因此需要interface来完成。abstract类似于c++中的virtual。这是我的理解
    (下面这句是网上朋友的一个总结)
    不够严谨,下面是我的总结:
    C++                    Java
    虚函数     --------   普通函数
    纯虚函数   --------   抽象函数
    抽象类     --------   抽象类
    虚基类     --------   接口
                    
      

  4.   

    java默认每个方法都是“虚函数”。
    对象是哪个类的,调用的就是那个类的方法,
    要想调用父类的方法,必须在方法中使用super.方法()
    java不考虑这个
      

  5.   

    C++语言中多态性是通过虚函数来实现的。
    虚函数与其它非虚函数的区别,仅仅是多了virtual关键字声明(该关键字告诉编译程序现在不要绑定,到运行时再决定。)
    从其作用来看,C++语言中的虚函数很有点java中的抽象方法的意思,但更相当于java中的抽象方法的是C++语言中的虚函数。
    还可以看出:C++语言的抽象类就相当于java中的抽象类。
      

  6.   

    C++语言中多态性是通过虚函数来实现的。
    虚函数与其它非虚函数的区别,仅仅是多了virtual关键字声明(该关键字告诉编译程序现在不要绑定,到运行时再决定。)
    从其作用来看,C++语言中的虚函数很有点java中的抽象方法的意思,但更相当于java中的抽象方法的是C++语言中的虚函数。
    还可以看出:C++语言的抽象类就相当于java中的抽象类。