关于Cloneable接口的问题

qiullll 2010-04-05 01:49:09
CLONE的默认实现是浅拷贝 clone(){return (object)super.clone();}。可不可以将(object)super.clone()换成object.clone()啊?为什么还要进行强制转换呢
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hytdsky 2010-04-06
  • 打赏
  • 举报
回复
因为super.clone()返回类型是大概是void 如果要返回Object 当然要进行强制转换
koch_129 2010-04-06
  • 打赏
  • 举报
回复
阿弥陀佛
没明白,这个接口是干什么的.

上天难欺
诸恶莫做,断恶修善.
阿弥陀佛
wts 2010-04-06
  • 打赏
  • 举报
回复
你如果要自己覆盖Object的clone方法,那一般来说肯定是要返回你自己需要类型的克隆对象
比如你有个User类,要实现clone方法,那你肯定是要返回一个克隆的User对象
所以你如果直接用
super.clone();
那就只是调用了Object类的clone方法,返回一个Object类型的对象,而不是你要的User对象,所以这个时候就需要强制转型为(User)super.clone();
如果你就是要返回Object类型,那当然可以将强制转型去掉。
ZRBRZB 2010-04-06
  • 打赏
  • 举报
回复
可以去掉(object)

62,614

社区成员

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

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