java - 如果子类扩展抽象类,克隆方法的语法是什么?
问题描述
例如,A 类实现了可克隆,它是一个抽象类,B类扩展了 A 类。
假设我只需要B 类中的 clone 方法。我还需要使用吗
A result = (A)super.clone();
在clone
方法中?
解决方案
不,您可以将其实现clone()
为B
:
public B clone() {
try {
return (B) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException(e);
}
}
注意:该clone()
方法未在Cloneable
接口中定义。Cloneable
只是一个所谓的“标记”界面。所以A
根本不需要clone()
方法。
(您也可以将该方法声明为抛出 CNSE 并让调用者处理它。还要注意,clone()
这些Cloneable
天有点不受欢迎。考虑简单地提供一个复制构造函数,而不是采用 aB
并复制其字段的值。)
推荐阅读
- sql - 与 % 一样
- java - 没有名为“mongoTemplate”的 bean 可用。Spring Boot + MongoDB
- php - 如何滚动组合框的列表以在 Selenium php-webdriver 中显示选项?
- javascript - 剑道网格不显示所有数据/列
- arrays - 这些数组声明之间的区别?
- azure - 在 Github Profile Activity 上显示 Azure 存储库的活动
- javascript - discord.js 以及我是否需要 2 个 bot.logins?
- c# - NServicebus 和 NLog
- cron - 构建一个 cron 表达式以在定义的分钟内运行并且只运行一次(不可重复)
- python-2.7 - 如何从“timedelta 对象”中仅提取 HH:MM:SS 格式的时间