Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Duda] Duda sobre el concepto

Buenas noches, creo que debe ser algun tipo de error o yo estoy sumamente confundido, pero parece ser que se crearon don métodos, un método llamado retirarDeCuenta() y uno llamado _retirarDeCuenta(), cuando lo que yo comprendí de método abstracto es que en la clase padre se declara el método y se advierte por si alguno trata de implementarlo directamente y en las clases hijas se sobrescribe el método para ser usado teniendo esto en cuenta el ejercicio deberia quedar asi...

Método abstracto retirarDeCuenta() [clase Padre]

retiroDeCuenta(valor){
        throw new Error('Implemente el método en la clase respectiva');
    }

Método retirarDeCuenta() [clase Hija]

retiroDeCuenta(valor, comision) {
        valor = valor*(1+comision/100);
        if(valor<=this.#saldo){
            this.#saldo -= valor;
        }
        return this.#saldo;
    }

si en la clase hija no se sobrescribe el método, entonces arrojara el error, pero si se implementa, sencillamente se ejecuta sin arrojar el error.

Si estoy equivocado, por favor indiquenme, es un poco confuso este concepto.

2 respuestas
solución!

¡Hola Jorge! Gracias por tu pregunta. En cuanto a tu duda, es importante tener en cuenta que en JavaScript no hay una verdadera implementación de clases abstractas, por lo que la forma en que se implementan los métodos abstractos puede variar de una biblioteca o framework a otro. En el caso específico que mencionas, parece que se está utilizando una convención en la que se utiliza un método con un nombre que comienza con un guión bajo para indicar que es un método que no debe ser llamado directamente desde fuera de la clase, pero que debe ser implementado en las clases hijas.

En este caso, el método _retirarDeCuenta() podría ser considerado como un método abstracto, y el método retirarDeCuenta() en la clase hija podría ser considerado como una implementación concreta de ese método abstracto. Sin embargo, es importante tener en cuenta que esto es solo una convención y que otros desarrolladores pueden utilizar diferentes convenciones o patrones para implementar métodos abstractos en JavaScript.

Espero haber aclarado tus dudas. ¡Buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios! :)

Muchas gracias, revise más a fondo el concepto y creo que ya hice la apropiación adecuada, solo que me confundí debido a que he usado Python y PHP entonces se generó la duda, pero creo que ya esta apropiado este concepto, reitero el agradecimiento por la atención prestada.