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.