Если я говорюДоступ к защищенному методу в другом пакете?
class A{
}
то неявно наследует Object class.So Я имею класс, как показано ниже:
class A{
protected Object clone(){
} /// Here i am not overridning
//All the other methods (toString/wait/notify/notifyAll/getClass)
}
Теперь Почему я не могу получить доступ к методу в классе B клон(), который является в той же упаковке класса А.
Class B{
A a = new A();
a.clone();
**
}
// ** Говорит, что клон защищен в классе объектов. Но я не обращаюсь к методу клонирования объекта. Поэтому я вызываю метод клонирования класса А, который я еще не перегрузил.
Ваши фрагменты вводят в заблуждение. класса А {} и класса А { защищала клон() {}} не эквивалентны вообще. В первом случае вы не реализуете метод clone во время выполнения фрагмента 2. Ошибка, которую вы вызываете, не отображается со сниппетом 2. – dodecaplex
Это не ответит на ваш вопрос, но в новом API предпочитают статические фабричные методы или конструкторы копирования для клон(). – helpermethod
Что вы подразумеваете под своим комментарием '/// Здесь я не переопределяю? Как вы не переопределяете это? В Object метод 'clone' имеет точно такую же подпись, что и' A.clone', поэтому он переопределяет его. –