关于clone???

yourazhe 2003-08-22 01:48:53
Employee original=new Employee();
Employee copy=(Employee)original.clone()
为什么不能够执行呢?而非得重新定义?
难道Employee不是object的子类吗?
...全文
50 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyegg 2003-10-01
  • 打赏
  • 举报
回复
如五星红旗所说,要implements Cloneable
swinging 2003-10-01
  • 打赏
  • 举报
回复
think in java里有详细说明这个方面。建议查阅。
mashaw 2003-10-01
  • 打赏
  • 举报
回复
我对clone()进行了重新定义但还是不行(跟楼主一样的)还是说:clone() has protected access in java.lang.Object希望楼主解决之后记得告诉我:mashaw@163.com,谢谢先。
ticlej 2003-08-22
  • 打赏
  • 举报
回复
就像c++的"="符号一样,clone也是必须自己来实现的.系统目前还不具有这种功能.
freejacky 2003-08-22
  • 打赏
  • 举报
回复
对象应该实现cloneable接口
在对象内部做clone()应该做的事,返回该类的一个新的实现吧
TechnoFantasy 2003-08-22
  • 打赏
  • 举报
回复
呵呵,对java没研究。
yourazhe 2003-08-22
  • 打赏
  • 举报
回复
上面的问题可以这样问:为什么将OBJECT.CLONE()定义为PROTECED,就能够保证派生类必须定义自己的CLONE(),而不能够直接使用继承来的CLONE()。
yourazhe 2003-08-22
  • 打赏
  • 举报
回复
关于这个问题我思考了一下,大概可以这么理解,不对发地方请大家指正:

首先OBJECT.CLONE()是PROTECTED类型。为什么呢?
目的就是各个具体类要定义自己的CLONE(),而不只是简单的调用继承自OBJECT的CLONE()。因为OBJECT在设计自己的CLONE()时对于各个具体类究竟是什么样子根本不知道。所以为了强制每个类都定义自己的CLONE(),那么不管你继承自OBJECT的CLONE()是否满足需求,你还是必须定义自己的CLONE(),只不过在里面只要简单调用一下SUPER.CLONE()就OK了。

我现在不明白的地方在:

JAVA在实现这种机制时采用的方法

因为OBJECT.CLONE()是PROTECTED类型,所以只能够通过在派生类中使用。在其他地方既不能直接使用,也不能够通过一个基类的REFERENCE来调用。
但是在:
Employee original=new Employee();
Employee copy=(Employee)original.clone()
难道original不是OBJECT的一个基类对象吗????????????

现在做一个假设:如果把OBJECT.CLONE()定义为PUBLIC,那么在:
Employee original=new Employee();
Employee copy=(Employee)original.clone()就可以了吗???????

如果我在Employee 里面没有重新定义CLONE(),但是Employee 里面存在继承自BJECT的为PROTECTED的CLONE()。如果将如果把OBJECT.CLONE()定义为PUBLIC,会怎么样???
znjq1001 2003-08-22
  • 打赏
  • 举报
回复
wa!!! 5个星,耀眼
TechnoFantasy 2003-08-22
  • 打赏
  • 举报
回复
你的类应该实现cloneale接口
javahui 2003-08-22
  • 打赏
  • 举报
回复
在Employee里重新定义clone()方法吧,Object的 clone()方法是私有的。

你可以定义一个Employee.myClone():
public Object myClone()
{
return this.clone();
}
课程亮点: 从无到有、手把手教你编写CA/TA,快速上手,快速部署项目标准的开发,开发一套CA/TA,可部署到不同的TEE OS上。受益人群: 汽车行业主机厂、tier1、SOC芯片公司的安全部门同事手机行业,ODM/OEM、SOC芯片公司的安全部门同事学生课程收益: 熟悉CA/TA开发的步骤和流程。快速上手,快速搭建自己开发环境。熟悉各类TEE、基于各类TEE的CA/TA开发步骤。搭建自己的安全平台熟悉各类常规安全应用熟悉tee密码学算法、tee存储  课程大纲  Hello大家好,上架一门新的视频课程,课程主要包含两大部分,第一部分搭建环境,第二部分从无到有的编写代码。带领大家手把手编写。 具体大纲如下:(1)qemu v8环境搭建- 搭建一个qemu_v8的环境,用于跑BL1-->BL2-->BL31-->BL32-->BL33-->Linux kernel;- 直接使用已搭建好的镜像- 工程使用以及说明(2)CA/TA开发编程实践从无到有编写代码,已完成的大纲如下:- 2秒钟快速编写(clone)一组CA/TA程序- 安全存储详解以及代码示例- CA到TA双向传参数的四种方式(value、temref、memref),区别?优缺点?- 对称密码学算法aes的使用,CBC/ECB/CTR/XTS分组密码的使用,加密解密,pending等- aeskey的操作,如何随机生成aeskey(TEE_GenerateKey),objectHandle和aesbuf有什么区别? 如何将handle- 认证加密算法,如aes-GCM的使用- 非对称密码学算法RSA的使用,包括加密、解密、签名、验签- RSA key的处理,包含如何生成RSA KEY,rsakey object如何转换成可见的数组,如何转换der,如何转换pem,反向又如何转换- ECC/ECDSA的使用- 国密sm2 sm3 sm4的使用.  其中sm4包含加密、解密、签名、验签等- encode和decode的实现- TA属性的定制以及API的使用- 数字摘要  SHA1 sha224 sha256 sha384 sha512等- 消息认证码 HMAC- TEE侧获取时间的函数有哪些(TEE_GetSystemTime、TEE_GetREETime),有什么区别?分别是怎样使用的? - 如何获取随机数(TEE_GenerateRandom)?- TA调用TA的示例和演示后续可能继续补充的如下(也欢迎大家提需求):- multi-session和multi-instance的使用- CA LOGIN flag的使用 

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧