Páginas

miércoles, 7 de noviembre de 2018

Atributos finales en clases abstractas

Las clases abstractas son unas clases “especiales” en el mundo de la programación. Básicamente es una clase en la cual no se pueden instanciar objetos a no ser que esta sea la clase padre de una hija en la cual se instancia un objeto. Veamos lo con un ejemplo sencillo. Tenemos una clase persona con los atributos Nombre y apellidos, en la que sesteamos unos getters and setters



A su vez creamos una clase socio que hereda de la clase persona. Esta clase tiene un constructor Socio que crea el num_socio y los atributos de la clase persona.



Uno de los problemas con los que me he encontrado es que en el caso de que la clase Persona quieras utilizar un atributo Final como un DNI, este diseño no permite hacerlo como normalmente lo hacemos. Buscando y probando un poco he conseguido una posible solución, ello consiste en lo siguiente. Creamos el atributo final de DNI y después lo metemos en el constructor de persona, así el compilador no nos saca el problema de que no le estamos asignando un valor. El código quedaría de la siguiente manera.



En la clase socio quedaría de la siguiente manera, solo le hemos añadido el parámetro DNI a los constructores.



esto hace que tú puedas sestear el valor inicial de DNI desde la clase socio y que nos e pueda modificar.

No hay comentarios:

Publicar un comentario