Добрый день!
Класс Object содержит метод clone() с модификатором доступа protected. protected позволяет обращаться к методу в том же пакете, где определен сам класс и в других пакетах в классам-потомках.
Все классы наследуются от Object.
Почему нельзя напрямую вызвать clone()?
public class Test {
protected void test() {}
}
public class Test2 extends Test{
}
Test2 test2 = new Test2();
test2.test(); // можно
test2.clone(); // нельзя