随笔 - 4  文章 - 10  trackbacks - 0
<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(1)

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

今天凌晨coding的时候发现一个很有趣的现象。“Object类是Java体系的单根父节点,所有Java类都从Object类继承。”这句话是大部分green hand都知道的Java金句,毋庸置疑。那如果我问你接口和Object类的关系呢?答案是“没有关系”。请看下面的代码:

1Map map = new HashMap();
2map.clone();

Map是一个接口,HashMap是一个类。clone()方法在Object类中定义,因此我下意识认为第二行可以这么写。结果编译器报错:clone()方法未定义。这个错误让我很郁闷,看了半天doc才发祥原来Map是一个接口,而接口和Object类没有任何关系,所以Map也就没有继承clone()。于是把代码改成下面的样子:

1HashMap map = new HashMap();
2map.clone();

这样就可以了。

兄弟,你这样是测试不出来的。java是绝对多态的。
Map map = new HashMap();
map.clone()调用相当于HashMap.clone()也就是说调用的是从HashMap中的clone方法。但是你没有看清楚object的文档,class要显式implements Clonable接口才可以调用clone方法的 
posted on 2007-08-16 14:50 冬天出走的猪 阅读(766) 评论(0)  编辑  收藏 所属分类: j2se

只有注册用户登录后才能发表评论。


网站导航: