Taller herencia

Solo disponible en BuenasTareas
  • Páginas : 5 (1082 palabras )
  • Descarga(s) : 4
  • Publicado : 24 de mayo de 2010
Leer documento completo
Vista previa del texto
CORPORACIÓN UNIVERSITARIA DEL CARIBE CECAR
FACULTAD DE INGENIERÍA – INGENIERÍA DE SISTEMAS
Lenguajes de Programación I

Objetivos:

✓ Reconocer que es la herencia entre clases, sus ventajas y desventajas
✓ Reconocer la forma como se implementa la herencia en Java
Definición
Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendocaracterísticas (métodos y atributos) similares a los ya existentes. Es la relación entre una clase general y otra clase mas especifica. Es un mecanismo que nos permite crear clases derivadas a partir de clase base, Nos permite compartir automáticamente métodos y datos entre clases subclases y objetos. Por ejemplo: Si declaramos una clase párrafo derivada de una clase texto, todos los métodos yvariables asociadas con la clase texto, son automáticamente heredados por la subclase párrafo.
La herencia es uno de los mecanismos de la programación orientada a objetos, por medio del cual una clase se deriva de otra, llamada entonces superclase, de manera que extiende su funcionalidad. La idea es la de partir de las situaciones más generales e ir derivando hacia las más particulares, creandocategorías, de la misma forma en que piensa el ser humano.
Ejemplos:
public class Mamifero
{
private int patas;
private String nombre;
public void imprimirPatas()
{
System.out.println(nombre + " tiene " + patas + " patas\n");
}
public Mamifero(String nombre, int patas)
{
this.nombre = nombre;
this.patas = patas;
}
}

public class Perro extendsMamifero
{
public Perro(String nombre){
super(nombre, 4);
}
}

public class Gato extends Mamifero{
public Gato(String nombre){
super(nombre, 4);
}
}

public class CreaPerro {
public static void main(String [] args) {
Perro bobi = new Perro("Bobi");
bobi.imprimirPatas(); /*Está en la clase mamífero*/
}
}
Es decir una clase es comootra y además tiene algún tipo de característica propia que la distingue. Por ejemplo podríamos pensar en la clase Empleado y definirla como:
class Empleado {
    String nombre;
    int numEmpleado , sueldo;

    static private int contador = 0;
    Empleado(String nombre, int sueldo) {
        this.nombre = nombre;
        this.sueldo = sueldo;
        numEmpleado = ++contador;
    }
   public void aumentarSueldo(int porcentaje) {
        sueldo += (int)(sueldo * aumento / 100);
    }
    public String toString() {
        return "Num. empleado " + numEmpleado + " Nombre: " + nombre +
                " Sueldo: " + sueldo;
    }
}
En el ejemplo el Empleado se caracteriza por un nombre (String) y por un número de empleado y sueldo (enteros). La clase define un constructorque asigna los valores de nombre y sueldo y calcula el número de empleado a partir de un contador (variable estática que siempre irá aumentando), y dos métodos, uno para calcular el nuevo sueldo cuando se produce un aumento de sueldo (método aumentarSueldo)  y un segundo que devuelve una representación de los datos del empleado en un String.(método toString).
Con esta representación podemos pensaren otra clase que reuna todas las características de Empleado y añada alguna propia. Por ejemplo, la clase Ejecutivo. A los objetos de esta clase se les podría aplicar todos los datos y métodos de la clase Empleado y añadir algunos, como por ejemplo el hecho de que un Ejecutivo tiene un presupuesto. 
Así diríamos que la clase Ejecutivo extiende o hereda la clase Empleado. Esto en Java se hacecon la clausula extends que se incorpora en la definición de la clase, de la siguiente forma:
class Ejecutivo extends Empleado {
    int presupuesto;
    void asignarPresupuesto(int p) {
        presupuesto = p;
    }
}
Con esta definición un Ejecutivo es un Empleado que además tiene algún rasgo distintivo propio. El cuerpo de la clase Ejecutivo incorpora sólo los miembros que son...
tracking img