Solucionado (ver solución)
Solucionado
(ver solución)
4
respuestas

[Duda] ¿Qué métodos se pueden heredar?

Cuando en el video intenta acceder al método iniciarsesion() para el nuevo objeto "funcionario", este no aparece ya que es un método de la clase Gerente, pero si yo accedo al método getBonificacion, es decir funcionario.getBonificacion(); el resultado si utiliza el método que se definió en la clase Gerente.

Por que en ese caso si se accede al método de la clase Gerente, pero al método iniciarsesion que igual esta en la clase Gerente no se puede acceder, tiene algo que ver con la sobreescritura de métodos.

Gracias.

4 respuestas

Hola, un gusto saludarte.

El método funcionario.getBonificacion(), si esta implementado en la clase Funcionario y si te debería acceder, teniendo en cuenta que el generico sea la clase Funcionario. Quizas tengas la misma lógica en el Scope del metodo getBonificación(), que tenga el salario de Gerente, revisalo y lo comentas.

También algo a tomar en cuenta es que como Funcionario es una clase Padre, este tendrá sus atributos y métodos por definición.

solución!

¡Hola!

Vamos aclarando algunas cositas, antes de entrar en materia.

Teniendo una clase Funcionario con sus métodos y atributos, y otra clase Gerente con sus métodos y atributos, además de los métodos y atributos heredados de la clase Funcionario de la que es hija, se entiende lo siguiente:

La clase Funcionario es padre de la clase Gerente. Un objeto de tipo Funcionario podrá acceder a los atributos y métodos de la clase Funcionario, pero no de la clase Gerente.

Ahora, si el objeto se crea de esta forma:

Funcionario gabriel = new Gerente();

Gabriel tampoco tendrá acceso a los métodos de la clase Gerente, porque en estricto rigor es un Funcionario. A menos que se aplique un cast al objeto, de esta manera:

(Gerente) gabriel.iniciarSesion()

Entonces ahí si, gabriel, siendo todo un Funcionario, podrá acceder a los métodos propios de su condición de Gerente.

Excelente, igual quiero aclarar que más adelante en el curso se aclara esta duda!

Muchas Gracias.

corríjanme por favor, yo deduje que la forma:

Funcionario gerente = new Gerente();

gerente buscara en dentro de la clase Gerente() la clase Funcionario, es tambien correcto?