Las clases tienen dos miembros importantes: variables miembro y métodos. Algunos de los miembros de una subclase son declarados y definidos por la propia subclase, mientras que otros se heredan de su clase principal. La subclase hereda la variable miembro de la clase principal como una de sus propias variables miembro, como si la variable miembro se declarara directamente en la subclase y puede ser operada por cualquier método de instancia definido en la subclase. La subclase hereda el método de la clase principal como uno de sus propios métodos, como si el método estuviera directamente definido en la subclase, y puede ser llamado por cualquier método de instancia definido en la subclase.
Herencia entre subclases y clases principales en el mismo paquete:
Si la subclase y la clase principal están en el mismo paquete, entonces la subclase hereda naturalmente las variables miembro no privadas de la clase principal como sus propias variables miembro y, naturalmente, también hereda los métodos no privados de la clase principal como propios. El acceso a métodos, variables miembro heredadas o métodos permanece sin cambios.
Herencia cuando la subclase y la clase padre no están en el mismo paquete:
Si la subclase y la clase principal no están en el mismo paquete, las variables miembro de acceso privado y amigable en la clase principal no serán heredadas por la subclase, es decir, la subclase solo hereda las variables y métodos miembro de acceso público y protegido en la clase principal como variables miembro y métodos de subclases.
Explicación adicional sobre protegido:
Las variables miembro protegidas y los métodos de una clase A pueden ser heredados por sus clases descendientes. Por ejemplo, si B es una subclase de A, C es una subclase de B y D es una subclase de C, entonces las clases B, C, y D heredan variables miembro protegidas y métodos de la clase A.
Si crea un objeto en D usando la clase D, entonces el objeto siempre puede acceder a variables protegidas heredadas o autodefinidas y a métodos protegidos a través del operador "." se crea usando la clase D en la clase. Los permisos de este objeto para acceder a variables protegidas y métodos protegidos a través del operador "."
1. Para las variables y métodos miembro protegidos declarados por la propia subclase D, siempre que la Otra clase y la clase D estén en el mismo paquete, el objeto objeto puede acceder a estas variables y métodos miembro protegidos.
2. Para las variables miembro protegidas o los métodos protegidos que la subclase D hereda de la clase principal, es necesario rastrearlos hasta la clase "antepasada" donde se encuentran estas variables o métodos miembro protegidos. Por ejemplo, puede ser la clase A. Siempre que la otra clase y la clase A estén en el mismo paquete, el objeto puede acceder a variables protegidas heredadas y métodos protegidos.