Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Duda] Metodos abstractos

Una vez que declaramos el metodo de depositar abstracto dentro de cla clase Cuenta es correcto usarlo dentro del metodo de transferir??? o ya no se puede utilizar pues al declararlo abrstracto esta vacio???

ya que tenia el codigo asi

public boolean transferir (double valor, 
             Cuenta cuenta) {
         if (this.saldo >= valor) {
             this.retirar(valor);
//			 this.saldo -= valor;
             cuenta.depositar(valor);		 
             return true;
         }
         	return false;
     }

debo de cambiar el cuenta.depositar(valor). por this.saldo+= valor o se puede quedar como esta?????

2 respuestas
solución!

Si declaraste el método "depositar" como abstracto en la clase "Cuenta", significa que la implementación de dicho método debe proporcionarse en las clases hijas que heredan de la clase "Cuenta". En este caso, el método "transferir" pertenece a la clase "Cuenta" y puede invocar al método abstracto "depositar" sin problemas.

Cuando invocas "cuenta.depositar(valor)" dentro del método "transferir", estás llamando al método "depositar" de la cuenta receptora para depositar el valor transferido. Esta es una implementación común en la lógica de transferencia entre cuentas.

El hecho de que el método "depositar" esté declarado como abstracto no significa que esté vacío. Significa que no tiene una implementación en la clase "Cuenta" y debe ser implementado en las clases hijas. Por lo tanto, puedes mantener la llamada "cuenta.depositar(valor)" en tu método "transferir" sin ningún problema.

public boolean transferir(double valor, Cuenta cuenta) {
    if (this.saldo >= valor) {
        this.retirar(valor);
        cuenta.depositar(valor);
        return true;
    }
    return false;
}

No necesitas cambiarlo a "this.saldo += valor" porque eso modificaría directamente el saldo de la cuenta receptora sin pasar por su método "depositar". Mantener la llamada al método abstracto "depositar" asegura que se respeten las reglas y la lógica de la cuenta receptora al realizar el depósito.

Muchisimas gracias por tu respuesta!