Правильно ли я понял, 1. в классе Сat мы не задаем переменные типа public, т.к. теоретически (если программа будет использоваться совместно) кто то может обратится к нему и изменить начальное значение. В нашем случае, ничего не измениться (ПРАВИЛЬНО?). Т.е. это страховка. 2. protected мы задаем, чтобы ограничить видимость только для конструктора (подкласса класса Cat)? т.е. если переменная будет private, то конструктор ее не увидит. ТАК?