2013-06-05 172 views
0

因爲我們知道,宣佈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對象訪問。

+0

我認爲它不起作用,因爲字符串是最終的和不可變的,並且不實現Cloneable接口。 – jpw

回答

2

PointPoint2D繼承公開clone()覆蓋。

你可能已經在Javadoc中發現了這個。

+0

你是對的! –