Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Duda] Override

Hola,! Sin darme cuenta escribí el mismo metodo de la clase padre (Cuenta) sin escribir Overrride y no hubo ningún error e incluso funcionó como debería. Les pido si me pueden decir algun ejemplo mas claro para cuando si o si tendría que utilizar overrride.

Espero se entienda mi duda. Gracias!

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola Kevin, deberias de usar el metodo "Override" cuando tengas una clase nueva que extienda a la clase madre y esta tenga un metodo que quieras usar pero por reglas de negocio este necesite un cambio, o simplemente quieras agregar algo adicional pero no quieres crear un metodo nuevo, asi:

Tenemos la clase madre Cuenta y tenemos el metodo Retirar

public class Cuenta {
 //Atributos..

public boolean retirar(double valor) {
        if (this.saldo >= valor) {
            this.saldo -= valor;
            return true;
        }else {
            System.out.println("La cantidad ingresada es superior al saldo disponible");
            return false;
        }
    }
    }

Ahora supongamos que necesitas crear una cuenta de ahorros , y por reglas de negocio se realiza un cobro adicional por retirar dinero, tranquilamente pordrias crear otro metodo que realize lo mismo y retire dinero pero le agregas el cobro adicional o la comision, pero en este caso estarias duplicando codigo, aqui es donde utilizas el override, lo que se traduce como sobreescritura, estas sobreescribiendo el metodo de retirar en vez de crear uno nuevo. quedaria asi:

public class CuentaAhorros{

@Override
    public boolean retirar(double valor) {
        //Se crea un nueva variable comision con el valor adicional
        double comision = 0.2; 
        //Te devuelve el mismo metodo pero le suma el valor adicional :)
        return super.retirar(valor + comision); 
    }

Espero haberte ayudado, aun estoy aprendiendo, asi que si me equivoque en algo, sean libres de corregirme, gracias :3