Рекомендуется ли устанавливать переменные-члены базового класса в защищенные, чтобы подклассы могли получить доступ к этим переменным? Или более рекомендуется установить переменные-члены как частные и позволить подклассам получать или устанавливать переменную с помощью геттеров и сеттеров?
И если рекомендуется использовать метод геттеров и сеттеров, то когда используются защищенные переменные?