La herencia es una característica de la programación orientada a objetos más exactamente una relación entre clases, donde esta permite que una clase puede adoptar los atributos y clases de otra clase. Esta relación también es conocida como generalización ya que se refiere a que una o varias clases hacen parte de una clase superior o general dependiendo del enfoque, la clase derivada es decir la que adquiere métodos y atributos de la clase base se le conoce como subclase, y la clase base se le conoce como super clase. Cabe mencionar que la subclase aunque hereda a la super clase, también
puede tener métodos y atributos propios.
Veamos un ejemplo en diagrama de clases
Aquí tenemos dos clases una llamada Persona y otra llamada EstudianteUniversitario relacionadas por herencia o generalización representada con esa flecha, donde la clase EstudianteUniversitario con sus propio métodos y atributos esta heredando los métodos y atributos de Persona , diciendo así que EstudianteUniversitario es una clase de Persona. Nota: También puede ser una relación donde en vez de Persona sea Estudiante a secas indicando que EstudianteUniversitario es una clase de Estudiante, pero reitero todo depende de que forma se este viendo el problema es decir que enfoque se le esta dando.
Ahora veamos este ejemplo en java
Para llevar a cabo correctamente la herencia en java, hay que colocar la palabra "extends" después del nombre de la clase y seguido del extends colocar el nombre la de clase que heredara en este caso es Persona como se puede observar en la clase EstudianteUniversitario. Como se están heredando los métodos y atributos de la clase Persona, no es necesario volver a escribir su contenido en cuanto a métodos y atributos, únicamente se coloca su contenido propio.
En algunos casos si es necesario escribir nuevamente algún método después de la herencia, frecuentemente esto sucede en la herencia de métodos abstractos de una clase abstracta, ya que estos métodos no están desarrollados y necesitaran desarrollarse en la subclase para llevarse a cabo.
Un ejemplo de esto es el siguiente
En este pequeño diagrama se encuentran dos clases donde la clase Circunferencia se relaciona con la clase FiguraGeometrica la cual tiene atributos, métodos GET y unos métodos abstractos que serán heredados, y por ser abstractos tendrán que ser desarrollados por la subclase en su código como se puede ver a continuación en java:
La clase Circunferencia deberá desarrollar esos métodos abstractos mediante de ciertas operaciones para calcular el área y perímetro como se puede apreciar en la ultima imagen, donde después de desarrollar el proceso matemático retornaran ambos métodos un valor float que serán respectivamente el área y perímetro calculado.
Estos casos de métodos abstractos se consideran un tipo como tal de herencia.
Nota: para reconocer un método abstracto en un diagrama de clases, se debe ver como esta escrito si en letra cursiva o scrib, si esta en letra cursiva es un método abstracto. En este caso los métodos de área y perímetro no están escritos en cursiva porque el programa para realizar el diagrama UML no lo permitía, pero aun así hay que tener en cuenta eso.
No hay comentarios.:
Publicar un comentario