Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Duda] this.getSaldo() resulta muy ambiguo

Tendría sentido si la clase CuentaAhorro sobrescribiera el getter getSaldo() proveniente de la superclase Cuenta pero eso no lo sabemos porque no lo colocaron explícitamente. Solo pusieron: (//getters y setters) en la clase CuentaAhorro.

De ser así, ese this.getSaldo() se referiría al getSaldo() sobrescrito de la subclase CuentaAhorro. Y si fuera super.getSaldo() se referiría al getSaldo() de la superclase Cuenta.

this.getSaldo();
super.getSaldo();
getSaldo();

Pero si no se sobrescribió, entonces resulta redundante colocar "this" porque en este caso el getSaldo() al que se refiere es al de la superclase Cuenta. Aunque este "this" puede dar a entender que se refiere al atributo de la clase CuentaAhorro heredado de Cuenta y no al atributo de la superclase Cuenta. Igual creo sería redundante.

PD: lo consulté con Luri y me comentó que el uso de ese "this" es redundante pero me gustaría saber sus opiniones igual y puede que yo esté mal.

2 respuestas
solución!

Hola Yahadad,

Entiendo tu confusión sobre el uso de this.getSaldo() en el contexto de herencia en Java. Vamos a desglosarlo un poco:

  1. Uso de this: En el caso de this.getSaldo(), this se refiere al objeto actual de la clase CuentaAhorro. Si CuentaAhorro no sobrescribe el método getSaldo(), entonces this.getSaldo() y simplemente getSaldo() llamarán al método getSaldo() de la superclase Cuenta. Por lo tanto, en este caso, this es redundante pero no incorrecto.

  2. Uso de super: Por otro lado, super.getSaldo() se utiliza específicamente para llamar al método getSaldo() de la superclase Cuenta, incluso si CuentaAhorro lo hubiera sobrescrito. Esto es útil cuando quieres asegurarte de que estás accediendo al método de la superclase.

  3. Redundancia: Como mencionaste, si CuentaAhorro no sobrescribe getSaldo(), el uso de this es redundante pero no afecta el funcionamiento del código. Sin embargo, puede ser útil para mejorar la legibilidad del código, indicando explícitamente que estás llamando a un método desde el contexto del objeto actual.

En resumen, aunque this puede parecer redundante en este contexto, no causa ningún problema funcional y puede ser una elección estilística para mejorar la claridad del código. Espero que esto aclare tus dudas y te ayude a entender mejor cómo funciona la herencia en Java.

Espero haber ayudado y buenos estudios!

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

¡Perfecto!, ya me quedó muy claro. Gracias por atender mi duda, ingeniero Luis.