Документ Java говорит -
Класс Object сам по себе не реализует интерфейс Cloneable, поэтому вызов метода clone для объекта, класс которого Object, приведет к возникновению исключения во время выполнения.
Почему метод клона в классе Object защищен?это так?
Это означает, что любой класс, который не реализует cloneable, будет вызывать исключение CloneNotSupported при вызове его метода clone.
Я запустил тестовую программу
public class Test extends ABC implements Cloneable{
@Override
public Object clone() throws CloneNotSupportedException {
System.out.println("calling super.clone");
return super.clone();
}
public static void main(String[] args) {
Test t = new Test();
try{
t.clone();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
class ABC{
}
Из клона метода Class Test вызывается super.clone?
Почему он не выдает исключение?