Como todos sabemos (supongo :D) Java es un lenguaje de programación
orientado a objetos, lo que hace de la herencia el santo grial del
desarrollo en java.
La herencia en su definición mas simple aqui nos referiremos a la creada con el modificador (super) se resume en dos palabras (es un "is-a") sonde el (es "is") es la clase Hija o la que Hereda y la (un "a") es la clase padre o la que es heredada. Lo que permite decir por ejemplo que si de Animal hereda Mamífero entonces un Mamífero es un Animal, lo que a su vez crea una relación interesante entre clases que permite afirmar cosas como estas; si un SerHumano es un Mamífero y un Mamífero es un Animal entonces un SerHumano es un Animal lo que transforma al lector en un completo animal (por definición de herencia).
Ahora algo hiper-mega-super importante y que no debes olvidar si algún día quieres llegar a certificarte en JAVA y es lo siguiente como puedes ver en las afirmaciones de (es-un) vistas de abajo (clase-hija)hacia arriba (clase-padre) siempre se pueden afirmar como verdaderas, es decir en un Animal puede guardar cualquier cosa que herede de animal o de sus sub-clases(clases que heredan de animal en este caso Mamifero) así que cualquiera de estas asignaciones es cierta;
(el operador de asignación es = es decir A=4 asigna el valor de cuatro a A)
Animal= Animal;
Animal = Mamifero;
Animal = SerHumano;
Mamifero=Mamifero;
Mamifero = SerHumano;
SerHumano=SerHumano;
Piénsalo así de abajo hacia arriba cualquier objeto cabe en su objeto padre.
Ahora lo crucial; ningún Objeto padre cabe en su Objeto hijo.
- ¿y como por qué?
dirán algunos.
- pues por qué si y se calla
responderán otros, pero este no es el caso aquí si decimos el porque. Primero que todo para evitar problemas como (herencia de diamante) java permite a una clase heredar solo de una clase (aquí no tenemos en cuenta las interfaces que ya veremos como son) pero si permite abiertamente que una clase sea heredada por múltiples clases es decir que (ojo que estoy hablando de herencia directa el tipo de relación entre Animal y Mamífero o entre Mamifero y SerHumano ) por ejemplo de animal hereda Mamífero, pero también Hereda Ovíparo y a su vez de Oviparo hereda Pato. Lo que convierte esto en un enredo enfermizo de herencia sin control que puede confundir pero lo mas simple es pensar en la regla "de abajo hacia arriba cualquier objeto cabe en su objeto padre." (esta regla no es oficial ni es reconocida por organización alguna solo se me ocurrió en un día de iluminación después de haber rodado de cabeza por las escaleras ) dicho esto las siguientes asignaciones NO SON POSIBLES:
Mamifero= Oviparo; NOOOOOOOOOOOOOOOOO!!!!!!!
Mamifero=Pato;NOOOOOOOOOOOOOOOOOOO!!!!!
Oviparo=SerHumano;NOOOOOOOOOOOOOOOOOOOO!!!!!!
Oviparo=Mamifero; NOOOOOOOOOOOOOOOOOOOOO!!!!!!
Ahora lo mas complejo las asignaciones no se puede hacer de arriba hacia abajo es decir (ningún Objeto padre cabe en su Objeto hijo) si recuerdas de las asignaciones correctas hachas mas arriba era correcto decir esto:
Animal = SerHumano; es decir que todo SerHumano es un animal (incluyendo)
ahora agregando las relaciones de herencia relacionadas con Ovíparo y Pato también podemos decir que
Animal = Pato; es decir que todo Pato es un animal.
Resumiendo en un Animal puedo esconder un SerHumano, Cualquier Mamifero, un Pato o cualquier Oviparo. por lo tanto no puedo decir bajo ninguna circunstancia que
Pato= Animal; es decir que un Animal (cualquier Animal) es un Pato (puede que si pero puede que no) porque ese animal puede ser un serHumano o un Mamifero o cualquier Ovíparo que no sea un Pato como un Avestruz.
tampoco puede decir
SerHumano= Animal; es decir que un Animal(cualquier animal) es un SerHumano (puede que si pero puede que no) porque ese animal puede ser un Pato un Ovíparo o cualquier Mamífero que no sea un SerHumano como una Vaca.
Dicho esto los principios de herencia ya han quedado incrustados en tu pequeño cerebro y estas listo para el siguiente paso que son los modificadores de acceso (Access control) que no son mas que las restricciones de la herencia y de uso de las clases es decir que puedo heredar y que puedo usar de cierta clase.
La herencia en su definición mas simple aqui nos referiremos a la creada con el modificador (super) se resume en dos palabras (es un "is-a") sonde el (es "is") es la clase Hija o la que Hereda y la (un "a") es la clase padre o la que es heredada. Lo que permite decir por ejemplo que si de Animal hereda Mamífero entonces un Mamífero es un Animal, lo que a su vez crea una relación interesante entre clases que permite afirmar cosas como estas; si un SerHumano es un Mamífero y un Mamífero es un Animal entonces un SerHumano es un Animal lo que transforma al lector en un completo animal (por definición de herencia).
Ahora algo hiper-mega-super importante y que no debes olvidar si algún día quieres llegar a certificarte en JAVA y es lo siguiente como puedes ver en las afirmaciones de (es-un) vistas de abajo (clase-hija)hacia arriba (clase-padre) siempre se pueden afirmar como verdaderas, es decir en un Animal puede guardar cualquier cosa que herede de animal o de sus sub-clases(clases que heredan de animal en este caso Mamifero) así que cualquiera de estas asignaciones es cierta;
(el operador de asignación es = es decir A=4 asigna el valor de cuatro a A)
Animal= Animal;
Animal = Mamifero;
Animal = SerHumano;
Mamifero=Mamifero;
Mamifero = SerHumano;
SerHumano=SerHumano;
Piénsalo así de abajo hacia arriba cualquier objeto cabe en su objeto padre.
Ahora lo crucial; ningún Objeto padre cabe en su Objeto hijo.
- ¿y como por qué?
dirán algunos.
- pues por qué si y se calla
responderán otros, pero este no es el caso aquí si decimos el porque. Primero que todo para evitar problemas como (herencia de diamante) java permite a una clase heredar solo de una clase (aquí no tenemos en cuenta las interfaces que ya veremos como son) pero si permite abiertamente que una clase sea heredada por múltiples clases es decir que (ojo que estoy hablando de herencia directa el tipo de relación entre Animal y Mamífero o entre Mamifero y SerHumano ) por ejemplo de animal hereda Mamífero, pero también Hereda Ovíparo y a su vez de Oviparo hereda Pato. Lo que convierte esto en un enredo enfermizo de herencia sin control que puede confundir pero lo mas simple es pensar en la regla "de abajo hacia arriba cualquier objeto cabe en su objeto padre." (esta regla no es oficial ni es reconocida por organización alguna solo se me ocurrió en un día de iluminación después de haber rodado de cabeza por las escaleras ) dicho esto las siguientes asignaciones NO SON POSIBLES:
Mamifero= Oviparo; NOOOOOOOOOOOOOOOOO!!!!!!!
Mamifero=Pato;NOOOOOOOOOOOOOOOOOOO!!!!!
Oviparo=SerHumano;NOOOOOOOOOOOOOOOOOOOO!!!!!!
Oviparo=Mamifero; NOOOOOOOOOOOOOOOOOOOOO!!!!!!
Ahora lo mas complejo las asignaciones no se puede hacer de arriba hacia abajo es decir (ningún Objeto padre cabe en su Objeto hijo) si recuerdas de las asignaciones correctas hachas mas arriba era correcto decir esto:
Animal = SerHumano; es decir que todo SerHumano es un animal (incluyendo)
ahora agregando las relaciones de herencia relacionadas con Ovíparo y Pato también podemos decir que
Animal = Pato; es decir que todo Pato es un animal.
Resumiendo en un Animal puedo esconder un SerHumano, Cualquier Mamifero, un Pato o cualquier Oviparo. por lo tanto no puedo decir bajo ninguna circunstancia que
Pato= Animal; es decir que un Animal (cualquier Animal) es un Pato (puede que si pero puede que no) porque ese animal puede ser un serHumano o un Mamifero o cualquier Ovíparo que no sea un Pato como un Avestruz.
tampoco puede decir
SerHumano= Animal; es decir que un Animal(cualquier animal) es un SerHumano (puede que si pero puede que no) porque ese animal puede ser un Pato un Ovíparo o cualquier Mamífero que no sea un SerHumano como una Vaca.
Dicho esto los principios de herencia ya han quedado incrustados en tu pequeño cerebro y estas listo para el siguiente paso que son los modificadores de acceso (Access control) que no son mas que las restricciones de la herencia y de uso de las clases es decir que puedo heredar y que puedo usar de cierta clase.
Comentarios
Publicar un comentario