[置顶] 顿悟JAVA,自己实现Object的Clone的约束关系(上)
2013-08-25 20:22
330 查看
因protected 的理解,顿悟一些JAVA的原理,模拟了Object类的子类为什么在调用clone方法前实现Cloneable接口。
这里不解释 ,上代码先。
这里不解释 ,上代码先。
运行效果
文件结构
调用类
package com.tarena.android.javabasic.useInterface; public class UseInterface { public static void main(String[] args) { SubclassFatherHaveAinterfaceTestA a = new SubclassFatherHaveAinterfaceTestA(); SubclassFatherHaveAinterfaceTestB b = new SubclassFatherHaveAinterfaceTestB(); try{ a.LikeClone(); b.LikeClone(); }catch(Exception e){ System.out.println(e.getMessage()); } } }
接口
package com.tarena.android.javabasic.useInterface; public interface LikeCloneable { //啥也没有 和 Cloneable一样的 }
基类
package com.tarena.android.javabasic.useInterface; public class myclassUseFace { //模仿Object 类来实现自己的clone规则,子类必须实现某个接口,这里是LikeCloneable protected void LikeClone() throws CloneNotSupportedException { if(this instanceof LikeCloneable) { System.out.println("必须实现LikeCloneable接口才能调用我,这个对象显然是实现了这个接口才看到我"); } else { CloneNotSupportedException e = new CloneNotSupportedException("没有实现接口的惩罚"); throw e; } } }
子类1
package com.tarena.android.javabasic.useInterface; public class SubclassFatherHaveAinterfaceTestA extends myclassUseFace implements LikeCloneable { public void LikeClone(){ try { super.LikeClone(); } catch (CloneNotSupportedException e) { System.out.println(this.getClass().getName()+ "如果本对象的类内有实现LikeCloneable接口,那么这一句话就会出现"); } } }
子类2
package com.tarena.android.javabasic.useInterface; public class SubclassFatherHaveAinterfaceTestB extends myclassUseFace { public void LikeClone(){ try { super.LikeClone(); } catch (CloneNotSupportedException e) { System.out.println(this.getClass().getName()+ "如果本对象的类内有实现LikeCloneable接口,那么这一句话就会出现"); e.printStackTrace(); } } }
相关文章推荐
- 顿悟JAVA,自己实现Object的Clone的约束关系(上)
- 顿悟JAVA,自己实现Object的Clone的约束关系(下)
- Object.clone()方法引申出的浅克隆、深克隆、java原型模式的实现、不可变类的实现
- (3) java.lang.Object.clone()方法 以及 深拷贝浅拷贝 及其 实现
- [置顶] 【Java进阶】实现自己的ORM框架
- [置顶] 一个简单的JAVA字符集过滤器实现 -vb2005xu 自己动手
- [置顶] 关于JAVA动态加载类[简单IOC的实现] -- vb2005xu自己动手
- [置顶] 排序算法之希尔排序 java实现
- 使用JMF实现java写自己的视频播放器
- java.lang.Object.clone()分析
- Java Object Clone
- 四种经典排序算法总结,自己Java语言实现
- [置顶] Java使用Interceptor+redis去实现请求重复频繁提交问题
- Java代码实现Map和Object互转及Map和Json互转
- 用java robot编写自己的机器人,实现自动测试
- java自己实现数据库连接池
- [置顶] 自己编写的Java教程小集合
- [置顶] java 打印功能实现
- 【java集合】自己实现简易的ArrayList
- java properties 的六种读取方法 以及一种自己最方便的实现