Notes
JAVA OCA - 06 HERENCIA RESUMEN
Content of the notes (1)
Page 1
Utilizando un ejemplo de
la vida cotidiana: todas las criaturas heredan las propiedades y el
comportamiento de sus padres de familia y la misma acción (como reproducirse)
puede tener diferentes significados para las diferentes especies. La herencia
permite la reutilización de código existente, y puede ser implementada en el
uso de clases e interfaces.
Una clase no puede
extender de más de una clase, pero puede implementar más de un interface. Las
clases que heredan también se llaman subclases, y la clase heredada se conoce
como la clase base o clase padre. Una clase que hereda otra clase o implementa
un interfaz se llama clase derivada o subclase. Así como normalmente podemos
nombrar a alguien usando su apellido o nombre de familia, un objeto de una
clase derivada puede ser denominado con una variable de una clase base o de un
interfaz que implementa. Pero cuando se hace referencia a un objeto utilizando
una variable de la clase base, la variable sólo puede acceder a los miembros
definidos en la clase base. Del mismo modo, una variable del tipo del interfaz
puede acceder sólo a los miembros definidos en esa interfaz. Incluso con esta
limitación, es posible que deseemos hacer referencia a objetos utilizando
variables de su clase base para trabajar con múltiples objetos que tienen
clases base comunes.
Objetos relacionados
cuyas clases base son la misma y comparten una relacion de herencia permiten
ser moldeados o casteados entre ellos. Es posible que se desee castear un
objeto cuando se quiera acceder a sus miembros que no están disponibles de
forma predeterminada con un variable que se utilice para hacer referencia al
objeto.
Las palabras clave this y
super son referencias a objetos y se utilizan para acceder al mismo objeto y
su clase base, respectivamente. Podemos utilizar la palabra clave this para
acceder a las variables de instancia del propio objeto, métodos y
constructores. Del mismo modo, la palabra clave super se utiliza para acceder a
las variables de instancia, métodos y constructores de la clase base.
El polimorfismo es la
capacidad de los objetos para ejecutar los métodos definidos en una superclase
o clase base, dependiendo de su tipo. Las clases que comparten una relación de
herencia están expuestas al polimorfismo. Un método polimórfico debe
definirse tanto en la clase base como en la clase derivada. Podemos implementar
el polimorfismo mediante el uso de clases o interfaces. En el caso de
polimorfismo con clases, la clase base puede ser tanto una clase abstracta como
una clase concreta. El método en cuestión aquí no es necesario que sea un
método abstracto. Cuando implementamos polimorfismo con interfaces, debemos
utilizar un método abstracto del interface, evidentemente.
Herencia con interfaces y
clases:
Una clase puede heredar
las propiedades y el comportamiento de otra clase.
Una clase puede
implementar varios interfaces.
Una interfaz puede
heredar cero o más interfaces.
Una interfaz no puede
heredar una clase.
La herencia permite
reutilizar el código existente.
La herencia de una clase
también se conoce como subclases.
Una clase que hereda de
otra clase se denomina clase o subclase derivada.
Una clase que se hereda
es llamado un padre o clase base.
Los miembros privados de
una clase base no se pueden heredar de la clase derivada.
Una clase derivada puede
heredar sólo los miembros con el modificador de acceso por defecto si, tanto
la clase base y la clase derivada, se encuentran en el mismo paquete.
Una clase utiliza la
palabra clave extends para heredar otra clase.
Una interfaz utiliza la
palabra clave extends para heredar de otra interfaz.
Una clase utiliza la
palabra clave implements para implementar una interfaz.
Una clase puede
implementar varios interfaces, pero sólo puede heredar una clase.
Un interfaz puede
extender de múltiples interfaces.
Las firmas de un método
definido en una interfaz y en la clase que implementa la interfaz deben coincidir; de lo contrario, la clase no se compilará. Una clase abstracta puede heredar de una clase concreta, y una clase concreta puede heredar de una
clase abstracta.
Variables de referencia y
tipos de objetos:
Con la herencia, puede
referirse a un objeto de una clase derivada utilizando una variable de una
clase base o interfaz.
Un objeto de una clase
base no se puede hacer referencia mediante la utilizacion de una variable de
referencia de su clase derivada.
Cuando un objeto es
referido por una variable de referencia de una clase base, sólo puede acceder
a las variables y de los miembros que se definen en la clase base.
Cuando un objeto es
referido por una variable de referencia de un interfaz implementado por una
clase, la variable de referencia sólo puede acceder a las variables y la
metodos definidos en la interfaz.
Es posible que necesite
acceder a un objeto de una clase derivada utilizando una variable de referencia
de la clase base para agrupar y utilizar todas las clases con los padres o
interfaces comunes.
La necesidad del casting:
Casting es el proceso que
fuerza a hacer que una variable se comporte como una variable de otro tipo. Si
la clase Manager amplía o extiende la clase Employee, y una variable de
referencia emp de tipo Employee se utiliza para referirse a un objeto de la
clase Manager, ((Manager) emp) casteará la variable emp a Manager.
Uso súper y this para
acceder a los objetos y los constructores:
Las palabras clave súper
y this son referencias a objetos.
Estas
variables son inicializadas por la JVM para cada objeto en memoria.
La referencia this
siempre apunta a un objeto de la propia instancia.
Puede utilizar la palabra
clave this para referirse a todos los métodos y variables que son accesibles
en una misma clase.
Si un método define una
variable como parámetro local del mismo con el nombre idéntico que el de una variable de instancia, la
palabra clave this debe ser utilizada para acceder a la variable de instancia
en el método.
Podemos llamar de
constructor a otro constructor utilizando la palabra clave this.
super, como referencia
de objeto, se refiere a la clase de padre o la clase base de una clase. La
variable de referencia super se puede utilizar para acceder a una variable o
método de la clase base si hay un choque de estos nombres. Esta situación se
produce normalmente cuando una clase derivada define variables y métodos con
los mismos nombres que en la clase base. La variable de referencia super
también puede ser utilizada para referirse a los constructores de la clase
base en una clase derivada.
El polimorfismo con clases:
El significado literal de
la palabra "polimorfismo" es "muchas formas". En Java, el
polimorfismo entra en escena cuando hay relaciones de herencia entre las
clases y, tanto la clase base y clase derivada, definen métodos con el mismo
nombre. Los métodos polimórficos son también llamados métodos reemplazados
o sobreescritos. Métodos reemplazados deben ser métodos con el mismo nombre,
misma lista de argumentos o misma lista de parámetros del método. el tipo de
devolución del método de reemplazo puede ser el mismo, o una subclase del
tipo de retorno del método reemplazado en la clase base, que también se
conoce como tipo de retorno covariante. Los modificadores de acceso para un
método de reemplazo pueden ser los mismos o menos restrictivos pero no pueden
ser más restrictivos que el método que se está sobreescribiendo.
Una clase derivada
se dice que reemplaza un método en la clase base si se define un método con
el mismo nombre, misma lista de parámetros, y el mismo tipo de retorno como en
la clase derivada. Si un método definido en una clase base se sobrecarga en
las clases derivadas, a continuación, estos dos métodos (en la clase base y
la clase derivada) no son llamados polimórficos. Cuando se aplica el
polimorfismo con clases, el método definido en la clase base puede ser o no
ser abstracto. Cuando se aplica el polimorfismo con interfaces, el método
definido en la interfaz base es siempre abstracto.
Information
- Description
- Diploma JAVA OCA - OCP (RESÚMENES OCA) Note on JAVA OCA - 06 HERENCIA RESUMEN, created by Isra RM on 25/05/2017.
- Created by
- Isra RM · May 2017
- Updated
- May 25, 2017
- Views
- 1
- History
-
- Created by Isra RM · Sep 23, 2015
- Copied by Isra RM · May 25, 2017
- Rating