4

たとえば、Human クラスがあり、clone() 関数をオーバーライドしたいとします。

clone()、Object、または Human の戻り値の型は何ですか? 戻り値の型は、関数のシグネチャに含まれていないため、オーバーライド プロセスで何の役割も持たないことはわかっています。

たとえば、クラス Human should i have

 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();
}
4

1 に答える 1

4

will を返すと、Human作業がずっと楽になります (おそらく、多くのキャストを節約できます)。また、マイナス面はありません。
私は間違いなくそのアプローチをお勧めします。

于 2013-05-25T21:35:28.830 に答える