Классы имеют два важных члена: переменные-члены и методы. Некоторые члены подкласса объявляются и определяются самим подклассом, тогда как другие наследуются от его родительского класса. Подкласс наследует переменную-член родительского класса как одну из своих собственных переменных-членов, как если бы переменная-член была непосредственно объявлена в подклассе, и ею может управлять любой метод экземпляра, определенный в подклассе. Подкласс наследует метод родительского класса как один из своих собственных методов, как если бы метод был непосредственно определен в подклассе, и может быть вызван любым методом экземпляра, определенным в подклассе.
Наследование между подклассами и родительскими классами в одном пакете:
Если подкласс и родительский класс находятся в одном пакете, то подкласс естественным образом наследует частные переменные-члены родительского класса как свои собственные переменные-члены, а также естественным образом наследует частные методы родительского класса как свои собственные. Доступ к методам, унаследованным переменным-членам или методам остается неизменным.
Наследование, когда подкласс и родительский класс не находятся в одном пакете:
Если подкласс и родительский класс не находятся в одном пакете, переменные-члены частного и дружественного доступа в родительском классе не будут унаследованы подклассом, то есть подкласс наследует только защищенные и общедоступные переменные-члены и методы доступа в родительский класс как переменные-члены и методы подклассов.
Дальнейшее объяснение о защите:
Защищенные переменные-члены и методы класса A могут быть унаследованы его классами-потомками. Например, если B является подклассом A, C — подклассом B, а D — подклассом C, то классы B, C, и D все наследуют защищенные переменные-члены и методы класса A.
Если вы создаете объект в самом D, используя класс D, то объект всегда может получить доступ к унаследованным или самоопределенным защищенным переменным и защищенным методам через оператор «.». Однако, если он находится в другом классе, например, объектный объект Other. создается с использованием класса D в классе. Разрешения этого объекта на доступ к защищенным переменным и защищенным методам через оператор «.» следующие:
1. Для защищенных переменных-членов и методов, объявленных самим подклассом D, пока класс Other и класс D находятся в одном пакете, объектный объект может получить доступ к этим защищенным переменным-членам и методам.
2. Для защищенных переменных-членов или защищенных методов, которые подкласс D наследует от родительского класса, их необходимо проследить до класса «предка», где расположены эти защищенные переменные-члены или методы. Например, это может быть класс A, пока класс Other и класс A находятся в одном пакете, объектный объект может получить доступ к унаследованным защищенным переменным и защищенным методам.