Хорошо, поэтому я изучил весь Java-курс Java и подумал, что у меня есть четкое представление о наследовании и супер/подклассах. Сегодня нам дали назначение для создания суперкласса, называемого врагом, с подклассами разных типов врагов. Я сделал все в порядке, и все мои подклассов работают, но когда я вернулся, чтобы прочитать руководящие принципы, мы должны следовать, я нашел это предложение:.Доступ к частной переменной из суперкласса (JAVA)
«Все переменные члены высшего класса должны быть частные Любой доступ переменная должна выполняться с помощью защищенных методов в подклассах ».
Из того, что я узнал, для меня это не имеет смысла. Если переменная является частной в суперклассе, не запрещает ли это доступ даже из подкласса? Последняя часть, которая говорит о защищенных методах в подклассах, также не имеет для меня никакого смысла. Как это помогает и/или разрешает любой доступ к суперклассу?
Из того, что я узнал о наследстве, Ниже то, что я думал, было правдой:
Access Levels
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
Если я понять что-то здесь пожалуйста объяснить! Я не хочу противостоять инструктору о том, чтобы дать нам ошибочные инструкции, если я тот, кто не понимает это правильно!
Вы правы, однако - эти инструкции плохо сформулированы. Похоже, вас просят получить доступ к приватным переменным через «методы защиты» [определенные] в подклассах », тогда как на самом деле это означает« методы защиты »[называемые] в подклассах». – yshavit