Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Inquietudes sobre el ejercicio

Hola!

Tengo unas inquietudes con respecto al ejercicio que se propone:

  1. Me parece que no es correcto usar el mismo nombre del método "calculaImpuesto" en la interfaz "Tributable" y en la clase "CalculadoraImpuesto". Este método deberia llamarse distinto, porque este método en realidad no está calculando el impuesto (como se hace en la clase Producto y Servicio) sino que está sumando o acumulando el resultado de los impuestos calculados en las clases Producto y Servicio que implementaron la interface. Esto me generó confusión también porque en la Clase "CalculadoraImpuesto" se usa el mismo nombre del método de la interfaz aunque son diferentes (uno es void y el otro es double), ¿es ésta una buena práctica?

  2. Dentro del método "calculaImpuesto" de la clase "CalculadoraImpuesto" se acumulan los resultados en la variable "totalImposto" sin embargo, la variable creada en esa misma clase se llama "totalImpuesto". ¿Esto podría generar un error de compilación?

De antemano, gracias por su amable atención y respuesta

1 respuesta
solución!

Hola, tienes razón en que se deben nombrar las clases, métodos y variables dependiendo la finalidad de estas, para algunos se nos complica un poco encontrar los términos correctos para describirlos, es correcto que puedas renombrarlos, la finalidad es que sea legible y entendible también es algo que debemos practicar.

Las interfaces son contratos que nos permiten definir distintas funcionalidades para un mísmo método en distintos objetos, como las personas cuando hablamos tenemos distintas voces, la interfaz es poder hacer sonido con la voz, pero la diferencia es que son distintas voces para cada persona, así funcionan las interfaces.

También existe la sobrecarga de métodos, esto significa que puedes tener dos o más métodos con el mismo nombre pero tienen que ser diferentes ya sea por el tipo de dato que reciben como parámetro o con distintos parámetros, el ejemplo más notable es el operador de suma "+" cuando quieres unir cadenas de texto es cadena1 + cadena2 concatena, pero cuando son números número1 + número2 = suma, esto es similar a la sobrecarga de métodos o que se repitan en el nombre pero puede que requieras que para determinado contexto hagan algo distinto sin tener que llamarlos por otro nombre, espero sea de ayuda mi respuesta