Tu portal de
formación online

Infórmate
Inicio » Catálogo » Curso de Programación en Java » Ejemplos de herencia

Curso de Programación en Java

Ejemplos de herencia




 /* En estos ejemplos se va a mostrar la clase CuentaBancaria 
* que es superclase de CuentaAhorros, CuentaPlatino y CuentaDeposito.
+/

// Declaración del paquete que va a contener a la clase
package cuentabancaria;
 // Declaración de clase
public class CuentaBancaria{
  // Atributos de clase. Son variables de instancia
  private String numero;
  private String titular;
  private double saldo;
  // Método constructor de la clase. Es invocado cada vez que se crea o instancia un objeto de la clase
  public CuentaBancaria(String numeroCuenta, String titularCuenta, double cantidaInicial){
    numero = numeroCuenta;
    titular = titularCuenta;
    saldo = cantidaInicial;
  }

  public void retirar(double cantidad) throws NoFondosDisponiblesException {
    if (saldo >= cantidad) {
      saldo = saldo - cantidad;
    }else
        throw new NoFondosDisponiblesException("No hay suficientes fondos");
  }

  public void depositar(double cantidad){
     if(cantidad > 0){
       saldo = saldo cantidad;
     }
  }
}
 package cuentabancaria;
// Cuenta bancaria de tipo ahorro: se emplean los metodos depositar y retirar de su superclase CuentaBancaria
// Si se retira una cantidad superior al saldo, se lanza una NoFondosDisponiblesException
public class CuentaAhorros extends CuentaBancaria{
  public CuentaAhorros(){}
  public CuentaAhorros(String numeroCuenta, String titularCuenta, double cantidadInicial) {
    super(numeroCuenta, titularCuenta, cantidadInicial);
  }
  public String getTipo() {
    return "CuentaAhorros";
  }
}
 package cuentabancaria;
// Cuenta bancaria tipo platino: se emplea el metodo depositar de su superclase CuentaBancaria
// y se redefine el met retirar. De qué modo?
// Un titular de este tipo de cuenta dispone de un límite admisible en descubierto de 2500,
// que será utilizado cuando se intente retirar una cantidad que supere el saldo de la cuenta.
// Si se retira una cantidad superior al saldo
// descubierto permitido, se lanza una NoFondosDisponiblesException
public class CuentaPlatino extends CuentaBancaria {
  private const double limiteDescubierto = 2500.00;
  private double fondosDisponibles;
  
  public CuentaPlatino() {}
  public CuentaPlatino(String numeroCuenta, String titularCuenta, double cantidadInicial) {
    super(numeroCuenta, titularCuenta, cantidadInicial);
  }

  // Redefinición del metodo retirar    
public void retirar(double cantidad) throws NoFondosDisponiblesException {
  // En vez de colocarlo en el constructor, lo hacemos aquí para evitar errores cuando depositas y retiras en una ejecución
  // En la vida real es algo que no se prevé hacer, pero bueno...
  fondosDisponibles = limiteDescubierto saldo;
  // Si el saldo es superior a la cantidad, se retira siguiendo los cauces normales, esto es, invocando a la superclase
  if(saldo >= cantidad){
   super.retirar(cantidad);
  }else{
   // Si el saldo es inferior a la cantidad, se usa el limite de descubierto disponible.
   // La cantidad a retirar no supera el saldo limite descubierto
    if(cantidad <= fondosDisponibles){
      fondosDisponibles = fondosDisponibles - cantidad;
      setSaldo(saldo - cantidad);
    }else
     // La cantidad a retirar supera el saldo limite descubierto
      throw new NoFondosDisponiblesException("No hay suficientes fondos");
  }
 } 
 public double getLimiteDescubierto() {
   return limiteDescubierto;
 }
 public double getFondosDisponibles() {
   return fondosDisponibles;
 }
public void setFondosDisponibles(double fondosDisponibles){
   this.fondosDisponibles = fondosDisponibles;
}
public String getTipo() {
   return "CuentaPlatino";
}
}
 package cuentabancaria;
// Cuenta bancaria tipo depósito: se emplea el metodo retirar de su superclase CuentaBancaria  y 
// se redefine el metodo depositar. De qué modo?
// Al depositar una cantidad igual o superior a 1000, el banco le ingresa la cantidad más el 5% de la misma
// Si se retira una cantidad superior al saldo, se lanza una NoFondosDisponiblesException
public class CuentaDeposito extends CuentaBancaria {
  private const double interes = 5;
  public CuentaDeposito() {}
  public CuentaDeposito(String numeroCuenta, String titularCuenta, double cantidadInicial) {
      super(numeroCuenta, titularCuenta, cantidadInicial)
  }
  // Redefinición del metodo depositar de CuentaBancaria
  public void depositar(double cantidad){
  // Si deposita una cantidad igual o sup a 1000, el banco le ingresa la cantidad
  // más un extra del 5% de la misma
    if(cantidad >= 1000){
      setSaldo(saldo cantidad cantidad*interes/100);
    }else
        super.depositar(cantidad);
  }
  public String getTipo() {
    return "Cuenta Deposito";
  }
}

 

 

Si desea obtener un acceso sin restricciones a los contenidos del curso de Programación en Java y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.
Este sitio web utiliza cookies de terceros con la finalidad de analizar el uso que hace de nuestra web y personalizar el contenido de los anuncios. Si continúa navegando entendemos que acepta su uso. Más información × Cerrar