码迷,mamicode.com
首页 > 编程语言 > 详细

Java对象克隆了解

时间:2017-07-26 13:44:49      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:name   ide   images   技术   stack   子类   block   object类   lock   

  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);
	
	}

}

  技术分享




Java对象克隆了解

标签:name   ide   images   技术   stack   子类   block   object类   lock   

原文地址:http://www.cnblogs.com/mylove-huan/p/7239006.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!