Exemplo n.º 1
0
  public static void main(String[] args) {
    ArrayList<CuentaBancaria> cuentas = new ArrayList<>();

    // UP CASTING
    CuentaBancaria ca = new CuentaAhorro(1, "Carlos", 0.3);

    cuentas.add(ca);
    cuentas.add(new CuentaCheques(2, "Antonio"));
    //        cuentas.add(new CuentaBancaria(3,"erick"));

    for (CuentaBancaria cb : cuentas) {
      cb.patito();

      // llamemos lo extra
      if (cb instanceof CuentaBancaria) {

        System.out.println("Tasa: " + ((CuentaAhorro) cb).getTasa());
      } else if (cb instanceof CuentaCheques) {
        System.out.println("CHEQUES\n-----");
        ((CuentaCheques) cb).imprimirCheques();
      }
    }

    // ----DOWN CASTING INDIRECTO
    CuentaAhorro cah = (CuentaAhorro) ca;
    cah.setTasa(0.07);

    // --DOWN CASTING DIRECTO
    System.out.println("Tasa: " + ((CuentaAhorro) ca).getTasa());
  }