Вообще говоря, никогда не делайте что-либо, потому что однажды вам, возможно, придется выполнять или выполнять йадайаду (это просто делает жизнь сложной и несчастной, Имхо ..).Если у вас есть метод, который следует использовать только в его классе, сделайте его закрытым.Если вам когда-либо придется расширять его по наследству, пересмотрите, к каким функциям, возможно, придется обращаться снизу.Обычно я в любом случае абстрагирую методы для своего суперкласса, поэтому мне все равно приходится думать о том, что будет необходимо, когда и где ..
Хорошая причина игнорировать то, что я сказал о частных методах, это если вы хотитепроверить свои внутренние функции, т. е. в модульном тесте.В C # вы можете позволить другому проекту видеть ваши защищенные методы извне, чтобы вы могли писать тесты против них.