【发布时间】:2010-11-01 20:27:27
【问题描述】:
我正在学习 Java,我正在阅读的书中有以下关于克隆的示例。在clone() 中,我的第一个实例能够在新对象上设置缓冲区,即使缓冲区是private。似乎它应该要求该字段为 protected 才能工作。
为什么允许这样做? clone() 是否具有允许其访问 private 字段的特殊权限?
public class IntegerStack implements Cloneable {
private int[] buffer;
private int top;
// ... code omitted ...
@Override
public IntegerStack clone() {
try{
IntegerStack nObj = (IntegerStack) super.clone();
nObj.buffer = buffer.clone();
return nObj;
} catch (CloneNotSupportedException e)
{
throw new InternalError(e.toString());
}
}
}
【问题讨论】:
标签: java private access-modifiers