在JDK类中有个Cloneable的接口,代码如下
package java.lang;public interface Cloneable {
}jdk上说名如下:
一个实现 Cloneable 接口的类用来指明类 Object 中的 clone 方法,可以合理实现该类实例的拷贝复制问题:
1.但是Cloneable 类中一个方法都没有怎么就去掉用Object 中的 clone 方法了呢?2.Object 中的 clone 方法声明如下
protected native Object clone() throws CloneNotSupportedException;
就声明了一个native 方法,具体是怎么实现这个拷贝的呢?
package java.lang;public interface Cloneable {
}jdk上说名如下:
一个实现 Cloneable 接口的类用来指明类 Object 中的 clone 方法,可以合理实现该类实例的拷贝复制问题:
1.但是Cloneable 类中一个方法都没有怎么就去掉用Object 中的 clone 方法了呢?2.Object 中的 clone 方法声明如下
protected native Object clone() throws CloneNotSupportedException;
就声明了一个native 方法,具体是怎么实现这个拷贝的呢?
private String name;public MyClass(){
id=1;
name="HaryPorter";
}public MyClass(int id,String name){
this.id=id;
this.name=name;
}public void display(){
System.out.println("Id ="+id+"\n"+"Name="+name);
}
}
// hackers code to clone the user classpublic class Hacker extends MyClass implements Cloneable {public static void main(String[] args){
Hacker hack=new Hacker();
try{
MyClass o=(MyClass)hack.clone();
o.display();
}
catch(CloneNotSupportedException e){
e.printStackTrace();
}
}
}