java中自己定义的类,如定义了一个User类,User类中,为什么没有clone方法,clone方法不是protected修饰的吗?protected修饰的方法不是:自己、同一个包的类、子类都可以访问吗?为什么Object中的clone方法,User不能访问呢?!
super.clone啊。但你本身要实现Cloneable才行
知道可以使用super.clone,提的问题是: User类从Object继承,且Object的clone方法的访问修饰是: protected,User类的对象为什么不能调用 Object 的 clone 方法
意思没表述清楚,User类为什么没有继承Object类中修饰符为protected的clone方法
@yorick: 继承了啊,为什么你会认为没有继承?
class x implements Cloneable
{
public void dummy(){
this.clone();
}
}
@Daniel Cai: 如果 x 不实现 Cloneable 接口,clone 方法不能调用
@yorick: 规则就是如此
* @exception CloneNotSupportedException if the object's class does not
* support the {@code Cloneable} interface. Subclasses
* that override the {@code clone} method can also
* throw this exception to indicate that an instance cannot
* be cloned.
而且这也不代表没有继承,子类同样可以在没有实现这个接口的情况下去进行调用
@Daniel Cai: 好的,👌
@Daniel Cai: 谢啦