Continuamos con constructores y con los parámetros, con el argumento, la idea de que una clase hija
pueda asignar los datos, los atributos del padre mediante el constructor KX inicializa.
Por ejemplo, la clase alumno la podríamos instanciar con el nombre y apellido y también con la edad.
Y esos atributos se lo pasamos con shuper al constructor del padre.
Veamos el ejemplo, partamos persona primero.
Entonces vamos a tener un constructor vacío para mantener un constructor por defecto, porque recuerden,
cada vez que implemente un constructor con parámetros se pierde el constructor default o vacío.
Entonces persona entonces va a recibir el nombre
y el apellido.
Ahí tenemos un constructor.
Inicializamos el nombre
y también el apellido.
Pero también podríamos tener otro más.
Por ejemplo, ese dis.
Bueno, la idea que utilice el constructor de acá con dos parámetros.
Entonces dice nombre, apellido
y asignamos la edad.
Perfecto.
Sobrecarga de constructores se fijan y acá re utilizamos este de acá.
Así que estamos bien.
Podríamos tener otro más con email, pero está bien.
Yo creo que con email lo podríamos asignar con el método Ceto.
Lo podríamos dejar hasta ahí nomás.
Bien, qué pasa con alumno?
Veamos públic.
Recuerden que del tipo de persona, por lo tanto, tiene que inicializar también un nombre y apellido.
Perfecto.
Entonces, si quiero crear un alumno solamente con el nombre, apellido y nada más, tengo que invocar
de forma implícita perdón explícita.
El constructor del padre.
Entonces con shuper.
Recuerden con shuper hago referencia al constructor del padre.
Y acá me muestra las alternativas.
Puede ser.
Nombre, apellido o el constructor.
Nombre.
Apellido.
Y la edad se fija en cualquiera de esas dos opciones.
Entonces.
Nombre?
Apellido.
Entonces esa es la ventaja de la herencia.
A pesar de que nombre apellido son atributos de persona privados.
Por lo tanto yo no tengo acceso, pero si mediante constructor lo puedo asignar.
No puedo pasar por parámetro por argumento.
Y se guardan, se almacenan en persona acá NT constructor y simplemente un alumno utilizo con super,
pero bien podría tener más constructores por ejemplo,
pero también con la edad.
Lo mismo tengo que invocar el constructor compatible del padre que pase esos tres parámetros super.
Nombre, apellido, edad
aka siempre de forma explícita.
Obviamente no se llama de forma automática, solamente se llama forma automática cuando es el vacío,
pero con parámetros.
No tengo que indicar el constructor que quiero llamar.
Y podríamos tener otra versión más,
uno muy parecido al anterior, pero que además podría pasar, por ejemplo, la institución, un atributo
propio de alumno.
Entonces, por ejemplo, acá vamos a agregar un cuarto argumento strength institución semejan.
Bueno, la idea que estos tres se lo pase al súper, al padre.
Pero institución es propio de alumno.
Por lo tanto, se inicializa acá, justamente debajo del súper bien.
Si se fijan acá super va constructo del padre.
Pero tenemos uno muy parecido acá mismo.
Entonces podríamos utilizar super o bien dice cualquiera de los dos está bien, porque al final con
this invocÃ este constructor y éste se lo pasa al súper o directamente súper.
Se fijan cómo lo queremos manejar.
Pero lo importante es que acá tenemos este nuevo atributo propio de alumno y lo asignamos justo debajo
de cómo aplica la clase anterior.
El súper se tiene que invocar primero en el cuerpo del conductor.
En la primera línea, porque por ejemplo, si colocamos esto arriba y el súper abajo marca error, tal
como vimos anteriormente, se fijan.
Se debe llamar como primera sentencia en el constructor.
Entonces, un tema importante que tener en cuenta siempre super va primero y después inicializa en lo
demás atributos se fijan.
Incluso podríamos tener un conductor más grande que inicializa todo.
También lo podría Majá creaba.
Ven por acá.
Voy a bajar.
Vengan acá.
Voy a bajar.
Guma, por ejemplo, notas matemáticas,
nota historia o castellano?
Voy a bajar acá.
Te hitoria?
Bueno, cómo sería?
Podríamos utilizar este constructor que inicializa el nombre, apellido, edad y la institución.
Entonces condici
se fijan?
Usamos este, pero además acá las notas.
No te Mathematica.
Nota matemática.
Nota castellano.
Y por último, nota hitoria.
Te ubican.
Tenemos una sobrecarga bastante grande en alumnos con constructores y también podíamos tener más combinaciones.
Por ejemplo, que solamente asigne nombre, apellido y la introducción, pero no la edad, por ejemplo.
Y así lo podríamos hacer o trabajar a nuestro gusto.
Bien, pero con eso está bien, más que suficiente.
Ahora veamos, por ejemplo profesor pero profesor, lo vamos a hacer un poco más simple.
Bueno, de hecho tiene un solo atributo, sigue.
De todas formas es más simple.
Public profesor
nombre.
Apellido.
Shuper del padre.
Persona.
Nombre.
Apellido.
Otro más.
Y la asignatura super nombre.
Apellido.
Y la asignatura disputo asignatura igual asignatura.
Se fijan entonces nombre apellido.
Se lo pasamos al padre y lo inicializa a persona NT constructor pero luego asignatura atributo propio
de profesor lo inicializamos abajo como un atributo y así la edad, por ejemplo se podría pasar con
el ceto del padre.
Se fijan?
Recordemos que persona tiene el set edad.
Entonces con este metodo pasamos nada lo mismo alumno internacional.
También podría sobrecargar vare constructores para inicializar los datos.
Nada más quería de alumno.
Entonces podría tener muchos constructores con diferentes combinaciones y además pasar el país.
La nota idioma.
En fin.
Pero bueno, lo vamos a simplificar para que no sea tan extenso público.
Super este super sería del padre alumno, recordemos que alumno también tiene nombre Pillay.
Acá entonces okupar este constructor que a su vez se lo pasa al padre a persona, es decir, a la clase
abuela del uno internacional.
Bien.
Y también, para simplificar, vamos a tener otro más, nada más público alumno internacional,
apellido y país.
Super bueno.
Pasa el nombre apellido al padre.
O incluso podría ser.
Lo pasamos acá.
Pero lo mismo dice.
Punto.
País, país.
Y listo.
Ahí tenemos.
Y recuerden, podemos tener muchas más combinaciones.
Ahora contracto constructores ya no da una dependencia para implementarlo en nuestra clase.
Ejemplo.
Y justamente lo que vamos a hacer la próxima clase crear, por ejemplo, alumno usando constructores,
alumno internacional también y el profesor y lo que no lo pasamos vía métodos, etc..
Ahora bien, un detalle importante que también lo aplique la clase anterior, pero no lo vimos de forma
explícita o visual.
Pero por ejemplo, si un alumno internacional se fijan.
Comentó este constructor.
Me marca un error.
Claro, pero acá.
Se fijan?
Alumno internacional.
Por qué ya no existe un constructor por defecto?
Sin argumento.
Acá marca el error que no está definido.
Es decir, no se define de forma automática.
Solamente se define en forma automática cuando no tenemos constructores.
Pero cuando ya tenemos al menos uno con parámetros.
Se pierde este constructor por defecto o vacío ya eso.
Y lo mismo también en la herencia, que también lo vimos.
Yo sé que lo estoy repitiendo, pero para que quede claro.
Lo comento acá van a haber errores, uno en la herencia al1 internacional se fijan, no, no puede invocar,
porque recuerden que acá buca un constructor compatible, vacío del padre, no lo tiene.
Ahí marco un error y el segundo error.
Acá.
Se fijan, conectás, seamos alumno.
Claro, lo estamos haciendo sin argumento, pero lo comentamos.
El alumno solamente tiene constructores con argumento.
Entonces dije entonces bueno, eso quería explicar.
Estamos listos.
Eso es todo.
Continuamos la siguiente clase con el ejemplo.
Acá vamos a crear la instancia y pasar los argumentos, los parámetros vía constructor.
Nos vemos.