Java 新手关于 Java 中 Object 类的 Clone 方法
資深大佬 : proxytoworld 3
在 Object.java 中 clone 方法是这样声明的
protected native Object clone() throws CloneNotSupportedException;
protected 修饰符的方法子类应该可以继承,但是为什么子类使用 clone 方法必须得自己重写 clone 方法
@Override protected Object clone() throws CloneNotSupportedException{ return (Person) super.clone(); }
重写的方法是 super.clone,即使用 Object 的 clone 方法,这个方法返回 Object 类,但是为什么又使用(Person)强制转换了,按道理的话应该是返回 Object 类不能转换为 Person 类
Person 类
public class Person implements Cloneable{ private int age; private String name; public Person(int age, String name){ this.age = age; this.name = name; } public Person(){} public int getAge() { return age; } public String getName() { return name; } @Override protected Object clone() throws CloneNotSupportedException{ return (Person) super.clone(); }
大佬有話說 (2)