接口与Object类的关系?

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

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

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

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

这样就可以了。

你可能感兴趣的:(java)