Я нашел ответ на мой вопрос тут:
ответ
Но есть вопрос к одному из ответов. А конкретно чего я не могу понять:
Ответ Виктор Ablebeam :
Protected - это те методы, которые доступны потомкам (классам, что наследуют), но не доступны внешним классам. Грубо говоря, удобно, когда вы знаете, что от класса А будут наследовать много-много разных классов, и у этих классов будет один (или много, не важно) общий метод. Который, однако, совершенно не нужен внешним классам. Если бы не было протектеда, было бы 2 пути - сделать метод, который должен быть у всех потомков - публичным. Это плохо, потому что это лишняя информация для внешних классов. Или же - дублировать одинаковые методы в каждом классе потомке. Это плохо, потому что не DRY.
Мой вопрос:
Если он будет унаследован, то кто узнает что он вообще существует? Т.к. человек который нашел данный класс наверняка его искал по конечному методу который ему необходим. Да даже если тот, кому понадобился какой-то
public метод этого класса, узнает о существование
protected метода найденного класса, навернека не будет его использовать. Отсюдого вывод - почему бы просто не использовать тот
public метод который не документирован возможностями класса или же просто в документации указан как вспомогательный и его, соответственно не трогать, тем самым мы экономим строчку кода в виде объявления типа метода и устраняем путанницу в интернете, связанную с этими частыми вопросами об определение типа методов. Не так ли?