08 abril, 2010

Herencia

Básicamente la Herencia en Java nos permite definir una clase tomando como base a otra clase ya existente. Esto es una de las bases de la reutilización de código, en lugar de copiar y pegar.
La Clase Padre es conocida también como Superclase, mientras que la Clase Hija es conocida como Subclase.
Java no soporta la herencia múltiple, es como en la vida real pues no podemos tener dos padres o dos madres, pero compensa esto implementando interfaces que emulan la herencia múltiple. 

La importancia de la herencia radica en que la clase hija o subclase puede adicionar características y comportamientos, y también redefinir o sobreescribir los métodos heredados de la clase padre.
Por eso una subclase es mas especifica que su superclase y representa un grupo mas pequeño objetos porque tienen caracteristicas mas detalladas que los elementos de la superclase.

En Java, la clase Padre de todas las clases existentes por defecto o creadas por nosotros es la clase Object y cuando una clase no tiene una Superclase explícita, su Superclase es la Clase Object.
En java, como ya vimos la herencia se especifica agregando la claúsula extends después del nombre de la clase. En la claúsula extends indicaremos el nombre de la clase base de la cuál queremos heredar.
Ejm:

public class Empleado extends Persona
{
    //Atributos
    private float sueldo;
    private String ruc, cargo;

    //Constructor
    public Empleado(String sexo)
    {
        super(sexo);
    }//Fin de Constructor
}

Lo que significa que la Clase Empleado está heredando de la Clase Persona, la palabra super es utilizada si se necesita llamar a los métodos de la clase padre desde la clase hija o de una que ha reemplazado ese método. Se usa la palabra super seguido del operador punto (.)
Ejm:

import MiClasePadre; 
public class MiClaseHija extends MiClasePadre 
    public void Suma_a_i( int j )  
    { 
        i = i + ( j/2 ); 
        super.Suma_a_i( j ); 
    }

Al heredar de una clase base, heredaremos tanto los atributos como los métodos, mientras que los constructores son utilizados, pero no heredados.

No hay comentarios.:

Publicar un comentario