1

我已经重写了该finalize()方法以在重新声明对象的内存空间的同时做一些工作。但是有人说我必须finalize()在重写该方法中调用finalize()父级。但是构造函数会自动调用它与方法不同的超类构造函数。finalize()

你能告诉我一些关于这...?

4

1 回答 1

8

它在Java 语言规范 #12.6(强调我的)中是这样定义的:

在 Object 类中声明的 finalize 方法不执行任何操作。Object 类声明了 finalize 方法这一事实意味着任何类的 finalize 方法总是可以调用其超类的 finalize 方法。应该始终这样做,除非程序员的意图是取消超类中终结器的操作。(与构造函数不同,终结器不会自动调用超类的终结器;这样的调用必须显式编码。

于 2013-01-23T07:15:46.183 回答