Java對象克隆瞭解

  1.java接口中有一種空的接口叫標識接口,這種接口值起到標識做用。

  2.要實現java對象克隆須要用到Object類的

     protected Object clone() throws CloneNotSupportedException
    方法,這個方法爲protected限定,在本包中,或者不一樣包的子類中才能訪問,而且拋出異常。

   3.若是要實現對象克隆首先被克隆的類必須實現Cloneable接口,若是沒有實現這個接口,調用clone()方法會拋出

    CloneNotSupportedException異常。


   4.實現cloneable接口後,由於不能訪問Object類中的clone方法,因此咱們必須重寫clone方法

       在子類的clone()方法中調用父類的clone()方法

 

package com.clone;
class Cat implements Cloneable{
	private int age;
	private String name;
	public void setAge(int age) {
		this.age = age;
	}
	public int getAge() {
		return age;
	}
	public Cat(int age,String name)
	{
		
		this.age=age;
		this.name=name;
	}
	public String toString()
	{
		return "姓名:"+this.name+",年齡:"+this.age;
	}
	
	@Override
	protected Object clone() throws CloneNotSupportedException {
		// TODO Auto-generated method stub
		return super.clone();
	}
	
}
public class TestClone {

	public static void main(String[] args) {
		Cat cat1=new Cat(20,"小白");
		Cat cat2=null;
		try {
			cat2=(Cat)cat1.clone();
		} catch (CloneNotSupportedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(cat1);
		System.out.println(cat2);
		
		cat1.setAge(30);
		
		System.out.println(cat1);
		System.out.println(cat2);
		
		System.out.println(cat1==cat2);
	
	}

}

  

相關文章
相關標籤/搜索