访问属性

时间:2013-06-05 07:58:35

标签: java oop

因为我们知道在clone()类中声明的Object方法是受保护的,并且Object的每个子类(这是所有类)都可以在这里访问它,我的问题是:

如果我写:

String str1 = "clone";  
String str2 = str1.clone();

编译器将此标记为错误。 String不会覆盖clone(),因此只能在lang包中访问此方法(我知道如果此类重写clone()它应该是公开的,可以从包外部访问,如果它是受保护的,可以在lang包中访问)。对? 但是这个片段没有标记任何编译错误:

Point p1 = new Point();  
Point p2 = p1.clone();

为什么?
StringPoint类都不会覆盖clone()方法,但可以通过clone()对象访问Point方法。

2 个答案:

答案 0 :(得分:2)

Point继承了clone()的公开Point2D覆盖。

您可以在Javadoc中自行发现这一点。

答案 1 :(得分:2)

Point继承了Point2D的公开clone()方法。