请讲一讲析构函数和虚函数的用法和作用?

解决方案 »

  1.   

    只能告诉你,Java中没有析构函数和虚函数,那是C++的特性……
      

  2.   

    楼主以前是学C++,现在刚学java的吧Java定义了一个特殊的方法叫做finalize(),finalize()方法作用的一个关键元素是Java的垃圾回收器。事实上,你可以调用System.gc()方法强制垃圾回收器来释放这些对象的内存。每个对象里都有这个方法,如果要做到像C++析构函数类似的功能,只要调用这个方法即可。
    XXX   x   =   new   XXX();   ............   x.finalize();//释放内存。但是Thinking in java里面提到,最好不要用
    至于楼主所说的虚函数在java中好像也没有明确定义,抽象方法abstract倒是有
      

  3.   

    C++中的析构函数是为了在对象用完以后,释放对象所占用的资源,Java中是垃圾回收来保证;
    C++中的纯虚函数在Java中基本上是对应于抽象函数,也就是只有声明,没有函数实现的函数。
      

  4.   

    java里面没有析构函数和虚函数,不过它有垃圾回收器,当系统检测到不用的资源时它自动回收,这点比起C++确实省下很多力.java里面提供抽象方法和抽象类来代替C++里面的虚函数,当然接口也有这样的功能,声明一个类为抽象类的关键字是abstract,声明抽象方法也是abstract,他们的作用是为了实现java的多态性,这点和C++一样.