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)
1
respuesta

Aplicacion de un constructor.

De acuerdo al ejercicio planteado es recomendable crear los constructores en la clase abstracta y despues hacerle un matching en las clases que lo heredan y a su vez caundo ejecute el codigo suprimo lineas de codigo y se hace un codigo mas limpio y eficiente?.

1 respuesta
solución!

Hola Jonathan, espero que estés bien

Tu pregunta es muy interesante y toca un punto importante en la programación orientada a objetos. En el caso de las clases abstractas y la herencia, es común definir constructores en la clase padre (en este caso, una clase abstracta si fuera el caso) para inicializar los atributos comunes a todas las subclases. Luego, las subclases deben llamar al constructor de la clase padre para asegurarse de que estos atributos se inicialicen correctamente.

En el ejercicio que mencionas, el error en el código de tu primo Arthur es que el constructor de la clase Alumno no está llamando al constructor de la clase Persona. Esto es crucial porque Persona tiene atributos que deben ser inicializados, como nombre y edad.

Para corregir esto, debes usar la palabra clave super en el constructor de Alumno para llamar al constructor de Persona. Aquí tienes un ejemplo de cómo debería verse el constructor de Alumno:

public class Alumno extends Persona {

    private int matricula;
    private String curso;

    public Alumno(String nombre, int edad, int matricula, String curso) {
        super(nombre, edad); // Llamada al constructor de la clase padre
        this.matricula = matricula;
        this.curso = curso;
    }

    // Métodos getters...
}

Al hacer esto, te aseguras de que los atributos nombre y edad se inicialicen correctamente al crear un objeto de la clase Alumno. Esto también contribuye a un código más limpio y eficiente, ya que evita la repetición de código y asegura que la lógica de inicialización se mantenga en un solo lugar.

Espero haber ayudado y buenos estudios!