cloneable

阅读 / 问答 / 标签

cloneable 有什么用 多余android

Object中的clone执行的时候使用了RTTI(run-time type identification)的机制,动态找到目前正在调用clone方法的那个reference,根据它的大小申请内存空间,然后进行bitwise的复制,将该对象的内存空间完全复制到新的空间中去,从而达到shallowcopy的目的,所以你调用super.clone() 得到的是当前调用类的副本,而不是父类的副本。

一个对象没实现Cloneable 接口,该怎么实现clone功能

因为clone声明的方法是接口所以实现接口的时候要全部实现接口所包含的全部方法这里的Cloneable接口就一个clone方法所以是这样..补充点public interface Cloneable此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。 如果在没有实现 Cloneable 接口的实例上调用 Object 的 clone 方法,则会导致抛出 CloneNotSupportedException 异常。 按照惯例,实现此接口的类应该使用公共方法重写 Object.clone(它是受保护的)。请参阅 Object.clone(),以获得有关重写此方法的详细信息。 注意,此接口不 包含 clone 方法。因此,因为某个对象实现了此接口就克隆它是不可能的。即使 clone 方法是反射性调用的,也无法保证它将获得成功。 答案补充 是啊,这个时候实现的时候是根据用户自己去写里面的代码啊接口都是里面只有函数的声明,没有函数的实现所以这里的clone方法是用户自己去写的....... 答案补充 接口就是只有函数声明,没有函数实现;为什么要用这种,是因为在编写程序的时候一个类只能继承一个类,但是可以实现N个接口

Java中不实现Cloneable接口,直接写一个copy函数会有什么样的后果?实现一个接口的好处是什么?

* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示! 一 我的理解1 . 感觉接口最大的作用还是实现多态。而多态让程序结构的设计更加的优雅。比如java并发中的两个重要接口Runnable和Callable 就是非常好的例子。比如我们要设计一个执行线程的容器(java中已有实现好的线程池机制),要接收一个任务做参数,我们不可能给每一个任务去设计一个方法。接口就为所有的任务类型提供了一种标准,意思是你的任务只要符合这个标准,我的程序就可以处理。---------------------------------------------------2. 于是开发者就可以自由开发了创建一个任何属于自己的任务 Runnable myTask = new MyTask();只要告诉执行器我这是一个runnable就好了,具体执行JVM去动态处理XXXExecutor.execut(myTask)。。。。。-------------------------------------------------------------------回顾这个例子,我觉得既可以说接口是一种标准,亦可以说是类抽象上的又一层抽象写到这,我觉得java爽爆了。。。二 官方----------------------------又完善了下---------------------------------------下列分别是官方和大神的讨论, 是英文的, 如果你觉得哪里读不通, 可以采纳并追加询问哈. JAVA的接口理解是非常重要的. 希望可以帮到你.3 关于接口定义(官方, 解决What的问题)What Is an Interface? (The Javau2122 Tutorials > Learning the Java Language > Object-Oriented Programming Concepts)https://docs.o****.com/javase/tutorial/java/concepts/interface.html4 关于为什么要使用接口(解决How的问题)Why do we need interfaces in Java? - Stack Overflowhttp://s***********.com/questions/3528420/why-do-we-need-interfaces-in-java

为什么set,list,map不实现cloneable和serializable接口

集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。http://www.baidu.com/s?wd=52035271515

Java中对对象克隆,一定要实现Cloneable接口吗?

是的,,,

Java 中 如果clone为什么必须实现Cloneable接口

---------转载自网络-------1 Cloneable是标示接口与java.io.Serializable类似,用于告知JVM该对象实现clone。并且super.clone()可以返回一个复制。2 很多时候,会把protected的clone方法修改为public,暴露给其他人可以使用

Cloneables应该实现的方法

方法如下:1、实现Cloneable接口表明该类的对象是允许克隆的。 2、允许克隆的意思是:可以调用clone()方法。 3、深拷贝还是浅拷贝,取决于如何重写Object的clone()方法。

Java 中 如果clone为什么必须实现Cloneable接口

因为clone声明的方法是接口所以实现接口的时候要全部实现接口所包含的全部方法这里的Cloneable接口就一个clone方法所以是这样..补充点public interface Cloneable此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。 如果在没有实现 Cloneable 接口的实例上调用 Object 的 clone 方法,则会导致抛出 CloneNotSupportedException 异常。 按照惯例,实现此接口的类应该使用公共方法重写 Object.clone(它是受保护的)。请参阅 Object.clone(),以获得有关重写此方法的详细信息。 注意,此接口不 包含 clone 方法。因此,因为某个对象实现了此接口就克隆它是不可能的。即使 clone 方法是反射性调用的,也无法保证它将获得成功。 答案补充 是啊,这个时候实现的时候是根据用户自己去写里面的代码啊接口都是里面只有函数的声明,没有函数的实现所以这里的clone方法是用户自己去写的....... 答案补充 接口就是只有函数声明,没有函数实现;为什么要用这种,是因为在编写程序的时候一个类只能继承一个类,但是可以实现N个接口举个例子:interface yuyu{ public void tt() throw Exception;//这里定义为接口,就一定不能实现,实现会报错;//这个只有在后面使用的时候再实现它,使用接口的目的是为了代码的紧凑,//看起来比较直观....}public class demo implements yuyu{public void tt() throw Exception{//这里就要写代码进行具体实现!!!//这里可以实现N个接口,但是这里只是实现了yuyu,但是继承只能继承一个//还有这种的好处是,当很多类都要类似的方法的时候,//都可以实现这个yuyu接口,而很多的代码就可以不写了,大概就是这些原因吧...}} 答案补充 java中不是什么空接口,比如说序列化的接口Serializable这些具体含义以及作用(序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。)都是由JDK作用标识好了的,如果你不实现这个接口你将自己去写自己的那一套处理对象流的机制的规范所以在这里就为java程序员提供了很大的好处(简便),不知道我上面说的,你能不能明白..只有实现这个接口才能完成你要的功能...