Как кратко описано здесь, переопределение частных методов в Java недопустимо, поскольку частные методы родительского класса "автоматически окончательны и скрыты от производных класс". Мой вопрос в основном академический.
Как это не является нарушением инкапсуляции, чтобы не допускать "переопределенный" родительский частный метод (т.е. реализованный независимо с той же подписью в дочернем классе)? Родительский частный метод не может быть доступен или унаследован дочерним классом в соответствии с принципами инкапсуляции. Он скрыт.
Итак, почему дочерний класс должен быть ограничен от реализации его собственного метода с тем же именем/подписями? Есть ли хорошая теоретическая основа для этого, или это просто прагматическое решение? Существуют ли на других языках (С++ или С#) разные правила?