Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Pregunta/Duda polimorfismo

Hola,

De anteman ogracias por sus respuestas.

No me queda muy claro porque cuando el profe obtiene la bonificación nos da esos valores, por que se suman las bonificaciones si se supone que cada bonificacion es por aparte? Esta es la respuesta Calculo actual: 100.0 EJECUTANDO DESDE GERENTE Calculo actual: 10600.0 EJECUTANDO DESDE CONTADOR Alexis es contador y gana 5000 y se supone que debe ser Su salario +bonificacion. COmo usamos el metodo getbonificacion de la clase Gerente, deberia sumarse su salario mas la bonificacion (Que es la misma cantidad) pero da 10800 y no 10000. Entiendo que tambiñen en la clase contador dice que retorne 200 pero ¿Como se suma eso a los 1000? e igualmente me hacen falta 600 que no se porque aparecen (se que para el caso de la gerente si se aplica y serian 500 pero porque suma los 100 de la clase funcionario?) Calculo actual: 10800.0

Y la otra

public class ControlBonificacion {

private double suma;

public double registrarSalario(Funcionario funcionario) {
    this.suma = funcionario.getBonificacion() + this.suma;
    System.out.println("Calculo actual: " + this.suma);
    return this.suma;
}

}

que funcion tiene suma? y como se le agrega valor a la variable???? no me queda claro como almacena tantos datos

Muchas gracias!

2 respuestas

¡Hola Juan!

Entiendo que tienes algunas dudas sobre el cálculo de bonificaciones en el programa que estás revisando. Permíteme explicarte cómo funciona.

En el código que compartiste, la clase ControlBonificacion tiene una variable llamada "suma" que se utiliza para almacenar el total de las bonificaciones. Cada vez que se llama al método "registrarSalario" con un objeto de la clase Funcionario, se obtiene la bonificación del funcionario y se suma a la variable "suma". Luego, se imprime el valor actual de la suma.

En cuanto a tu pregunta sobre por qué se suman las bonificaciones si se supone que cada bonificación es por separado, esto se debe a que el método "registrarSalario" se llama una vez para cada funcionario. Cada vez que se llama, se obtiene la bonificación del funcionario y se suma al valor actual de la variable "suma". Esto permite calcular el total acumulado de bonificaciones de todos los funcionarios.

En el caso específico que mencionas, donde Alexis es un contador y su salario es de 5000, se llama al método "getBonificacion" de la clase Gerente para obtener la bonificación. Esto se debe a que el objeto "funcionario" pasado al método es de tipo Funcionario, pero en realidad es una instancia de la clase Contador, que hereda de la clase Funcionario. Por lo tanto, se utiliza el método de la clase Gerente para obtener la bonificación.

En cuanto a los valores específicos que mencionas (10800 y 10000), no puedo darte una respuesta precisa sin ver el código completo y los cálculos realizados. Sin embargo, te sugiero revisar cuidadosamente el código y los cálculos para asegurarte de que estén correctos.

Espero haber aclarado tus dudas. Si tienes alguna otra pregunta, no dudes en hacerla.

¡Espero haber ayudado y buenos estudios!

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

Tuve el mismo problea y para que encuentres la respuesta es que debes de tomar en cuenta que solo has creado una instancia, es decir que tu atributo 'suma' mantiene el valor de las sumas anteriores Es por eso que el primer registrarSalario() que realizas cuadra con tus calculos, pero en el segundo te falta dinero por decirlo asi, prueba a imprimir el valor de suma y te daras cuenta de esto de igual forma revisa si has colocado bien el nombre de tus metodos espero haberte ayudado, sino, mandame un mensaje a discord y trato de explicarte mejor @snake13