clone()
默认情况下,方法是不可见的Object
类,所以它是如何不给错误的数组类型?
这是否意味着有一个名为INT []类型,其中实现用Java编写的,如果是在哪里找到它?
如果它是写那么为什么不完全写呢?
我的意思是,为什么不落实每一个方法正确不只是从行为Object
类。
int[] a ={1,2,3};
Object object = new Object();
object.clone();//Does not compile since clone is protected.
a.clone();// allowed as this method is from int[]
所有数组实现Cloneable接口。
见Java语言规范的相关部分: 第10.7节的数组成员
公共方法clone
,这将覆盖类的同名方法Object
,并没有抛出checked异常。 所述的返回类型clone
的阵列型的方法T[]
是T[]
多维数组的克隆是浅的,这就是说,它创建只有一个新的数组。 子阵列共享。
这是因为有一个Cloneable接口,使得它如此的Object.clone()
方法进行访问。 Java中的数组已经实现Cloneable,这样你就可以克隆一个数组对象。
在otherhand的任意对象,不能保证它可以让自己的场对场副本。
因为阵列不能被扩展为正常对象。 做一个数组的唯一途径Cloneable
是实现Cloneable
从一开始界面。 出于同样的原因阵列默认实现Serializable
。
阵列被实现为由JVM动态创建的类的一个实例。 这个类有一个特殊的名字和其他的海报上面提到的它实现了Cloneable和Serializable接口接口。 (它也有一个名为长度的公共最后一个字段...)。
这个类也有一个具体的和公共执行保护Object.clone()方法。 Java允许一个方法的访问级别( 公共,私有,保护和默认包保护的访问级别 ),以进行限制较少时,该方法被覆盖。 换句话说,一个受保护的方法可以在子类中被公开,这是什么JVM在与Array类实施保护的clone()方法。