clone()的返回类型应该是什么?

时间:2013-05-25 21:32:05

标签: java override clone

例如,我有类Human,我想覆盖clone()函数。

clone(),Object还是Human的返回类型应该是什么?我知道返回类型在重写过程中没有任何作用,因为它不在函数的签名中。

例如,在课堂上我应该有

 public Object clone() throws CloneNotSupportedException { 

    Human h = (Human)super.clone();

    h.age = age;
    h.name = name;


    return h;
}

然后在主

 public static void main() throws CloneNotSupportedException { 



    Human h = new Human("Slavco", 49);

    Human z = (Human)h.clone();
}

public Human clone() throws CloneNotSupportedException { 

    Human h = (Human)super.clone();

    h.age = age;
    h.name = name;


    return h;
}

并在主

public static void main() throws CloneNotSupportedException { 



    Human h = new Human("Slavco", 49);

    Human z = h.clone();
}

1 个答案:

答案 0 :(得分:3)

返回Human会让您的生活更轻松(可能会为您节省大量的时间),并且没有任何不利之处。
我肯定会推荐这种方法。