为什么我们不能将Cloneable作为一个absract类而不是将它作为一个接口?

时间:2018-04-20 17:30:16

标签: java interface abstract-class

为什么我们不能将Cloneable作为absract类而不是将其作为接口?

2 个答案:

答案 0 :(得分:3)

Java不支持多重继承类。

如果Cloneable abstract class强制整个对象树为可克隆或无。如果父类不是,那么你就无法克隆孩子。

简而言之,除非您需要在Java 9之前添加实例字段(或非公共方法),否则无法通过将简单接口设置为抽象类来获得任何东西

答案 1 :(得分:2)

如果你这样做,那么从Cloneable继承的任何东西都不能继承任何其他类。

此外,这样做的意义非常小。当你想在继承者之间共享数据,代码等时,通常会使用抽象类,而且我不确定拥有该方法的默认实现会特别有价值。