![](/img/trans.png)
[英]All the classes in java belong to Object Class , then why can't a class be static
[英]If all class extends object why can't they all call clone
class Main
{
public static void main(String[] args)
{
new Cloned().clone();
}
}
class Cloned implements Cloneable {}
這給出了一個錯誤,說它受到保護。 不能對象的任何子類調用該方法。
因為clone()
是Object類中的protected方法
如果你想公開訪問clone()
,你需要在你的類中重寫該方法。
@override
public Object clone()
{
return super.clone();
}
這里的問題是Main
不會擴展Cloned
。 就目前而言, Main
可以調用Main.clone
,但不能調用Cloned.clone
。
clone
方法在Object
中聲明的事實在這里無關緊要。 除了公共方法之外,類只能調用自己的繼承方法 。 這包括來自其超類的受保護的,但不包括其他(超級)類的受保護方法。
class Main implements Cloneable
{
public static void main(String[] args)
{
}
@Override
protected Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return super.clone();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.