Top Ad unit 728 × 90

Recientes

recent

Herencia y Polimorfismo POO - Curso de Java - Algoritmos y Programación (24-25)

En este artículo continuamos revisando conceptos de programación orientada a objetos, trabajaremos con herencia para crear una superclase y subclases implementando un ejemplo en el lenguaje de programación Java utilizando el IDE NetBeans.

Puedes ver todos los vídeos directamente en youtube:
https://www.youtube.com/watch?v=vYj9DGnMIzY&index=24&list=PLZPrWDz1Molqy8PjM4PnMPyZzJf5LH1M2

Visita nuestro canal en youtube y revisa cursos de Desarrollo de software y aprende a diseñar sistemas informáticos totalmente gratis:
www.youtube.com/jcarlosad7

Gracias por seguir con este curso completo de java desde cero, bienvenidos les sugiero a todos los que se inician a programar aplicaciones java que sigan este tutorial completo.
Compartan el curso y suscríbanse amigos.


Herencia


  • Es un mecanismo que sirve para reutilizar clases
  • Se utiliza cuando existen clases que comparten muchas de sus características
  • Se extiende la funcionalidad de clases más genéricas
  • Se introducen los conceptos de superclase y subclase




Polimorfismo

  • Se puede modificar localmente el comportamiento de los métodos heredados.
  • De esta manera, objetos de diferentes tipos pueden responder de forma diferente a la misma llamada.
  • Este es el concepto clave del polimorfismo.


    Ejemplo:

    • Se mueve igual un pez, un pájaro o una rana?.
    • En cambio, todos son animales y por tanto podrían heredar el método mover de dicha clase.
    • Gracias al polimorfísmo, cada objeto concreto realizaría la operación mover como corresponda.


    1. Crear el Proyecto HerenciaPOO.
    2. Agregar los paquetes
    3. Agregar las clases Cliente, Vendedor, Persona


    *** Clase Cliente ***


    package Clases;

    public class Cliente extends Persona {

        //Propiedades

        private String categoria;

        private String codigo;

        

        //Métodos

        public void generarCodigo()

        {

            this.setCodigo("C"+this.getNombres().substring(0,3)+this.getDocumento().substring(0,2));
        }
        //Métodos get and set
        public String getCategoria() {
            return categoria;
        }

        public void setCategoria(String categoria) {
            this.categoria = categoria;
        }

        public String getCodigo() {
            return codigo;
        }

        public void setCodigo(String codigo) {
            this.codigo = codigo;
        }
    }

    *** Clase Vendedor ***

    package Clases;
    public class Empleado extends Persona {
        //Propiedades
        private String tipoContrato;
        private Double sueldo;
     
        //Método
        public void calcularSueldo(Double sueldoBase)
        {
            if (this.getTipoContrato()=="C")
            {
                this.setSueldo(sueldoBase+350);
            }
            else
            {
                this.setSueldo(sueldoBase+750);
            }
        }
     
        //Métodos get and set
        public String getTipoContrato() {
            return tipoContrato;
        }

        public void setTipoContrato(String tipoContrato) {
            this.tipoContrato = tipoContrato;
        }

        public Double getSueldo() {
            return sueldo;
        }

        public void setSueldo(Double sueldo) {
            this.sueldo = sueldo;
        }
    }

    *** Clase Persona ***

    package Clases;
    public class Persona {
     //Propiedades    
      private String apellidos;
      private String nombres;
      private String documento;
      private String tipo;
      
      //Constructores
      public Persona() {
        }
      
      public Persona(String apellidos, String nombres, String documento, String tipo) {
            this.apellidos = apellidos;
            this.nombres = nombres;
            this.documento = documento;
            this.tipo = tipo;
        }
      //Métodos get y set
      public String getApellidos() {
            return apellidos;
        }

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

        public String getNombres() {
            return nombres;
        }

        public void setNombres(String nombres) {
            this.nombres = nombres;
        }

        public String getDocumento() {
            return documento;
        }

        public void setDocumento(String documento) {
            this.documento = documento;
        }

        public String getTipo() {
            return tipo;
        }

        public void setTipo(String tipo) {
            this.tipo = tipo;
        }
    }

    4. Agregamos el JFrameForm


    *** Ir a la opción del Código para empezar a trabajar ***
    package Interfaces;
    import Clases.Empleado;
    import javax.swing.table.DefaultTableModel;

    public class FrmEmpleado extends javax.swing.JFrame {
        DefaultTableModel modelo;
        public FrmEmpleado() {
            initComponents();
            modelo=(DefaultTableModel)listado.getModel();
        }


    Código del btnAgregar

     private void btnAgregarActionPerformed(java.awt.event.ActionEvent evt) {                      
            Empleado emp=new Empleado();
            emp.setNombres(txtNombres.getText());
            emp.setApellidos(txtApellidos.getText());
            emp.setDocumento(txtDocumento.getText());
            emp.setTipo((String)cboTipoPersona.getSelectedItem());
            emp.setTipoContrato((String)cboTipoContrato.getSelectedItem());
            emp.calcularSueldo(750.0);
            modelo.addRow(new Object[]                                                                                           {emp.getTipo(),emp.getNombres(),emp.getApellidos(),emp.getDocumento(),
            emp.getSueldo()});
        }                                

    Herencia y Polimorfismo POO (24-25) Curso de Java - Algoritmos y Programación


    Saludos Imperio, un abrazo a la distancia.
    Herencia y Polimorfismo POO - Curso de Java - Algoritmos y Programación (24-25) Reviewed by Liliana Nataly Arcila Diaz on 9:14 Rating: 5

    1 comentario:

    Todos los derechos reservados www.IncanatoIT.com - Desarrollando Software © 2014 - 2019
    Desarrollado por Blogger, Designed by Sweetheme
    IncanatoIt.com. Con la tecnología de Blogger.
    y>