lunes, 27 de abril de 2020

Reutilización de código aplicando herencia en POO

En java podemos implementar herencia simple de la siguiente manera para optimizar la reutilización de código:

Diagrama UML

Supongamos que tenemos 3 clases que comparten tanto atributos como métodos, si construimos la clase para cada uno de ellos tendríamos código repetido.



Podemos representar lo mismo abstrayendo una clase base que concentre los atributos y métodos que se repetirán en las demás clases derivadas.


Codificación

Clase base:
package dto;

public class Personas {
 protected Integer id;
 protected String nombre;
 protected String apellidos;
 protected String correo;
 protected String telefono;

 public Personas() {
 }

 public Personas(Integer id, String nombre, 
   String apellidos, String correo, String telefono) {
  this.id = id;
  this.nombre = nombre;
  this.apellidos = apellidos;
  this.correo = correo;
  this.telefono = telefono;
 } 
 
 public Integer getId() {
  return id;
 }

 public void setId(Integer id) {
  this.id = id;
 }

 public String getNombre() {
  return nombre;
 }

 public void setNombre(String nombre) {
  this.nombre = nombre;
 }

 public String getApellidos() {
  return apellidos;
 }

 public void setApellidos(String apellidos) {
  this.apellidos = apellidos;
 }

 public String getCorreo() {
  return correo;
 }

 public void setCorreo(String correo) {
  this.correo = correo;
 }

 public String getTelefono() {
  return telefono;
 }

 public void setTelefono(String telefono) {
  this.telefono = telefono;
 }

 public void logIn() {

 }

 public void logOut() {

 }
}

Clases derivadas:
package dto;

public class Clientes extends Personas{

 private String pais;
 
 public Clientes() {
  super();
 }

 public Clientes(Integer id, 
   String nombre, 
   String apellidos, 
   String correo, 
   String telefono, 
   String pais) {
  super(id, nombre, apellidos, correo, telefono);
  this.pais = pais;
 }

 public String getPais() {
  return pais;
 }

 public void setPais(String pais) {
  this.pais = pais;
 }
 
 public void comprar() {
  
 }

}








No hay comentarios:

Publicar un comentario