黑马程序员技术交流社区

标题: 枚举类中的finalize()方法 [打印本页]

作者: 何小红    时间: 2012-9-20 12:34
标题: 枚举类中的finalize()方法
本帖最后由 何小红 于 2012-9-20 13:15 编辑

finalize
protected final void finalize()
枚举类不能有finalize方法
覆盖:类Object中的finalize
为什么说finalize中不能有这个方法,应该如何理解这个问题?
作者: 彭润生    时间: 2012-9-20 12:56
本帖最后由 彭润生 于 2012-9-20 13:04 编辑

因为枚举是静态的,所以在内存里面是静态区域。他没有从Object里继承这个方法。所以就不能有了。
查看API文档里没有这个方法

未命名.jpg (10.33 KB, 下载次数: 84)

未命名.jpg

作者: 夏天    时间: 2012-9-20 12:59
本帖最后由 夏诗瑶 于 2012-9-20 13:06 编辑

Object 关于finalize()的描述如下。
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

而枚举是静态的类。枚举类型的每一个成员都是该类型的一个实例,而且默认的都是声明为public static final的。
finalize()方法回收的是堆内存中的无引用的对象。
所以枚举类中不能有此方法。

作者: 何小红    时间: 2012-9-20 13:14
写错了,应该是为什么不能有finalize这个方法,明白了,谢谢各位哈
作者: 何小红    时间: 2012-9-20 13:15
夏诗瑶 发表于 2012-9-20 12:59
Object 关于finalize()的描述如下。
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用 ...

谢谢,回答得很明了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2