Clonación de objetos en Java [3 preguntas]

¿Se llamará al método de clonación de Asub haciendo esto? ¿O Asub está clonado correctamente? Si no, ¿hay alguna forma de apropiarse del clon profundo Asub a través de este tipo de método?

abstract class Top extends TopMost {
    protected Object clone() {
        Object obj = super.clone();
        // deep copy and try catch
    }


}

abstract class A extends Top { 
    protected Object clone() {
        Object obj = super.clone();
       // deep copy and try catch
    } 


}

class Asub extends A {
    protected Object clone() {
        Object obj = super.clone();
        // deep copy and try catch
    }

    public void doSomethingNew() {
    }
}

abstract class TopMost {
    public void someMethod() {
        Top a = (Top) super.clone();
        // more code here
    }
}

public class Main {
    public static void main(String... args) {
        Asub class1 = new Asub();
        class1.someMethod();
    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta