A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何小红 中级黑马   /  2012-9-20 12:34  /  1445 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何小红 于 2012-9-20 13:15 编辑

finalize
protected final void finalize()
枚举类不能有finalize方法
覆盖:类Object中的finalize
为什么说finalize中不能有这个方法,应该如何理解这个问题?

5 个回复

倒序浏览
本帖最后由 彭润生 于 2012-9-20 13:04 编辑

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

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

未命名.jpg
回复 使用道具 举报
本帖最后由 夏诗瑶 于 2012-9-20 13:06 编辑

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

而枚举是静态的类。枚举类型的每一个成员都是该类型的一个实例,而且默认的都是声明为public static final的。
finalize()方法回收的是堆内存中的无引用的对象。
所以枚举类中不能有此方法。
回复 使用道具 举报
写错了,应该是为什么不能有finalize这个方法,明白了,谢谢各位哈
回复 使用道具 举报
夏诗瑶 发表于 2012-9-20 12:59
Object 关于finalize()的描述如下。
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用 ...

谢谢,回答得很明了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马