Так что мой преподаватель сказал что-то вдоль линий:Какие проблемы обслуживания связаны с защищенным переменными в Java
Объявления переменных как защищенное, подвергает их все подклассы, может вызвать проблемы с обслуживанием, лучше объявить переменные private (даже в отношениях наследования) и писать методы getter и setter для обеспечения доступа к переменным.
Но он не объяснил, какие проблемы с обслуживанием были. Какие проблемы существуют, если подклассы могут обращаться к переменным.
Im довольно новое для Java, поэтому простое объяснение было бы более полезным
«если ... вы решили удалить эту переменную или переименовать ее или изменить ее тип». Но это также проблема с геттерами: вы также не можете использовать ни одну из этих вещей для методов. –
(Возможно, я неправильно читаю «тип» здесь, я полагаю, вы могли бы означать «представление») –
@AndyTurner Это правда, но вы можете изменить внутреннюю реализацию методов, которые используют переменные экземпляра, не нарушая никакого кода, который вызывает эти методы. Например, метод getter может возвращать значение некоторой частной переменной экземпляра, а позже вы можете решить, что эту переменную можно устранить, а метод getter вернет значение, вычисленное на основе других переменных. – Eran