Эта тема заслуживает обсуждения. Путаница возникает из-за того, что технически подкласс наследует приватные поля, потому что приватные поля существуют в подклассе, поэтому при вызове getN () он возвращает значение n. Таким образом, поле n существует в подклассе. Если он не существует, то когда вы вызываете getN (), он выдаст ошибку, так как поле n не существует. Дело в том, что он существует, и поскольку он был объявлен в суперклассе, он технически наследуется подклассом.
Однако мы (Java-программисты и официальная документация Java о наследовании) не рассматриваем это наследование. По нашему соглашению, это не считается наследованием, потому что вы не можете получить доступ к значению этих полей напрямую. Это почти как если бы они не были вашими, поскольку единственный способ получить к ним доступ - это использовать то, что используют все остальные (классы, которые не являются подклассами этого суперкласса) (getters / setters).
Итак, концептуально говоря, частные поля не наследуются (хотя они существуют в подклассе).
Я думаю, что учителя должны разъяснить этот вопрос намного яснее, чем они. После глубокого изучения это действительно сбивает с толку.