假设我有这个类:
public abstract class AbstractFoo implements Cloneable {
public abstract Object clone();
}
还有子类:
public class Foobar extends AbstractFoo {
@Override
public Object clone() {
try {
Foobar c = (Foobar) super.clone();
/* some operations */
return c;
} catch (CloneNotSupportedException e) {
throw new InternalError();
}
}
}
我知道这是不可能的,但我想你能理解我的意思。如果Foobar实现了Cloneable接口而没有继承AbstractFoo类,那么子类将会起作用。我认为我想要但不被允许的是这样的:
Foobar c = (Foobar) super.super.clone();
如果Foobar实现了Cloneable接口且未继承AbstractFoo,那么子类将正常工作。
但如果要使用扩展的抽象类来完成“相同”的操作,应该如何操作呢?
super.clone();
做什么?你希望它做什么? - Sotirios Delimanolissuper.clone();
做什么? - Sotirios Delimanolis