将一个对象复制一份,称为对象的克隆技术。
在Object类汇总存在一个clone()方法:
protected Onject clone() throws CloneNotSupportedException
如果某各类的对象想被克隆,则对象所在的类必须实现Cloneable接口。
此接口没有定义任何方法,是一个标记接口
接下来我们看看具体代码实现:
以下是正确的代码:

//要实现Cloneable这个接口,不用传参
public class Dog implements Cloneable{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} public Dog() {} public Dog(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Dog [name=" + name + ", age=" + age + "]";
} //把这个方法重写一下就行,什么都不写
@Override
protected Object clone() throws CloneNotSupportedException { return super.clone();
}
————————————————
版权声明:本文为CSDN博主「陈jiaoshou」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43660039/article/details/84992348

  

结果展示:

我是原生dog:Dog [name=tom, age=3]
我是克隆dog:Dog [name=tom, age=3]
1
2
需要注意的是:clone重写的方法的修饰词是protected,受保护的意思,此时克隆的
主方法应该和重写clone的方法在一个包中,否则会报如下错误:

The method clone() from the type Object is not visible
————————————————
版权声明:本文为CSDN博主「陈jiaoshou」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43660039/article/details/84992348

最新文章

  1. Python格式化字符串~转
  2. ASP.NET生成WORD文档,服务器部署注意事项
  3. Java Connection.setAutoCommit
  4. ucenter 整合外部网站,实现登录等操作
  5. Shiro 整合SpringMVC 并且实现权限管理,登录和注销
  6. 通知中心NSNotificationCenter的使用
  7. HDU 2094 产生冠军(半拓扑排序+map)
  8. WebUI框架
  9. Identity-第一章
  10. Unity NGUI 3.0.4版本 制作网络版斗地主
  11. Myeclipse6.5配置反编译插件
  12. 正式软件工作第一天————MVC、ext JS、和clsa
  13. sqlserver 分页sql语句
  14. Jenkins安装plugin
  15. 【NOIP2014】DAY2题解+代码
  16. org.apache.log4j.Logger 详解
  17. android学习之-Theme和Style
  18. PhpStorm 常用快捷键
  19. 解决微信浏览器中无法一键拨号问题tel
  20. Python基础——2函数

热门文章

  1. ARTS-week2
  2. everything in javascript can act like an object,
  3. SparkSQL读写外部数据源-通过jdbc读写mysql数据库
  4. 题解 LA2889
  5. LeetCode 1130. Minimum Cost Tree From Leaf Values
  6. 第三章 - SQL基础及元数据获取
  7. learning scala extracors example
  8. err Invalid input of type: 'dict'. Convert to a byte, string or number first
  9. C Primer Plus--C预处理器和C库(1)
  10. Beta冲刺(3/5)