Java, herencia de clases
JavaJutsu, herencia entre clases
Este es un ejemplo de herencia, la clase ClienteVip que hereda de Cliente:
/**
* ClienteVip
* Clase que muestra la declaración de una clase que extiende a otra:
* es decir muestra la HERENCIA
*
* Para compilar:
* javac ClienteVip.java
*
* Para ejecutarlo:
* java ClienteVip
*/
// Librería necesaria para trabajar con la entrada/salida
import java.io.*;
// Libería necesaria para la clase Date
import java.util.Date;
/**
* clase ClienteVip
* Muestra la declaración de ClienteVip, una extensión de la clase Cliente.
* Es un ejemplo simple de herencia, donde creamos una clase especializada
* que hereda todos los atributos y métodos de la clase padre.
* Para lograrlo debemos añadir la clausula extends en la declaración
* de la clase.
*
* @author Pello Altadill
*/
public class ClienteVip extends Cliente {
// ATRIBUTOS o PROPIEDADES DE LA CLASE extendida:
public float descuento;
// MÉTODOS DE LA CLASE: Constructores, y otras funciones
/**
* ClienteVip
* este es el método constructor, al que se invoca
* al crear una instancia de la clase
*/
ClienteVip ()
{
// Lamamos al constructor de la clase padre
super();
System.out.println("Has creado una instancia de ClienteVip");
}
/**
* ClienteVip
* Otro constructor con parámetros.
* Nos sirve para crear una instancia
*/
ClienteVip (String nombre, String apellidos, Date nacimiento, int codigo, float descuento)
{
// Lamamos al constructor de la clase padre
super(nombre,apellidos,nacimiento,codigo);
// Establecemos el atributo descuento
this.descuento = descuento;
System.out.println("Has creado una instancia de ClienteVip");
}
/**
* aplicarDescuento
* Método que aplica el descuento del cliente a un determinado total
* @return resultado
*/
public float aplicarDescuento (float precioTotal)
{
float resultado = precioTotal * (1-descuento);
return resultado;
}
/**
* quitarIVA
* Método que le quita el IVA al cliente de un total
*
*/
public float quitarIVA (float precioTotal)
{
float resultado = precioTotal * (0.82F);
return resultado;
}
/**
* fichaCliente
* Método que sobrescribe al de la clase padre Cliente,
* añadiendo un dato más.
*
*/
public void fichaCliente ()
{
// al principio hace los mismo que la clase padre.
super.fichaCliente();
System.out.println("CLIENTE VIP");
System.out.println("Descuento: " + descuento);
}
/**
* main
* Función principal
* esta función es la que se inicia directamente al ejecutar el programa
* Y desde ella vamos a crear una instancia de ClienteVip
*/
public static void main (String args[])
{
// Creamos un par de instancias
ClienteVip unClienteVip = new ClienteVip();
ClienteVip otroClienteVip = new ClienteVip("Frodo","Bolson", new Date(), 19, 0.10F);
unClienteVip.codigo = 89;
otroClienteVip.fichaCliente();
System.out.println("Total 109.56 euros, con descuento del " + otroClienteVip.descuento + "%: " + otroClienteVip.aplicarDescuento(109.56F));
unClienteVip.saluda();
}
}