因为我们知道在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
方法。