以前经常用c++,c++里面的非静态函数,除非添加virtual关键字,否则都是普通的成员函数,Java里的非静态函数,好像都是虚函数吧?也就是都可以被子类覆盖。

解决方案 »

  1.   

    可以被覆盖,不过,
    java和C++是两种语言,这种类比不是很准确,在java里提供了abstract关键字,是为了显式的表示出该方法无需在声明后就定义,由子类实现,而不是指示该方法可被覆盖
      

  2.   

    写了就覆盖嗯
    类似C++里加上个virtual但JAVA必须写函数体的
      

  3.   

    这一点上是很像c++的虚函数,我也是c++正在转java
      

  4.   

    Java的abstract函数相当于c++里面的纯虚函数,virtual xxxmethod()=0;一个更精确说法,我认为应该是,Java里面大部分函数都是虚函数。
      

  5.   

    final不能override,编译错误
    static不会被override,静态的不可能多态
    private不会被override,由于可能被inline的缘故
      

  6.   

    方法前加了static的意思是:不需要实例化这个类的实例即可调用此方法,也就是说
    他是这个类的方法。非静态的方法是需要先实例化这个类的一个实例才能调用的,区别就
    在这里。