因为我们知道clone()
在类中声明的方法Object
是受保护的,并且每个子类Object
(即所有类)都可以在这里访问它,所以我的问题是:
如果我写:
String str1 = "clone";
String str2 = str1.clone();
编译器将此标记为错误。String
不覆盖clone()
,因此这个方法只能在 lang 包中访问(我知道这个类是否覆盖clone()
它应该是公共的,可以从包外部访问,如果它受到保护,它可以在 lang 包中访问)。正确的?但是这个片段没有标记任何编译错误:
Point p1 = new Point();
Point p2 = p1.clone();
为什么?
和String
类Point
都不会覆盖clone()
方法,但clone()
方法可以通过Point
对象访问。