Нет, мы не можем объявлять абстрактные методы закрытыми (private) в Java. Абстрактный метод должен быть доступен для переопределения в подклассах, и поэтому его модификатор доступа не может быть private.
Модификатор доступа private ограничивает доступ к членам класса только внутри этого класса, и он не может быть использован для наследуемых членов. Поэтому, если мы объявляем абстрактный метод как private, то он не будет доступен для переопределения в подклассах, что противоречит смыслу абстрактных методов.
Абстрактные методы могут иметь только модификаторы доступа public или protected. Модификатор доступа public делает абстрактный метод доступным для всех классов и подклассов, а модификатор доступа protected делает его доступным только для подклассов и других классов в том же пакете.
Вот пример кода, который вызовет ошибку компиляции при объявлении абстрактного метода как private:
abstract class MyClass {
private abstract void myMethod(); // Ошибка компиляции }
Здесь мы пытаемся объявить абстрактный метод myMethod() как private, что вызовет ошибку компиляции, поскольку абстрактный метод не может иметь модификатор доступа private.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov