Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EL BLOG DE TINCHICUS
Un blog para el programador
JAVA
Java / Abstraccion
Anuncios
Bienvenidos sean a este post, hoy hablaremos sobre la abstaccion, la cual por
diccionario es:
— EL TINCHICUS
Anuncios
Anuncios
Anuncios
Clases Abstractas
Las clases abstractas se declaran por medio de la palabra abstract y contienen las
siguientes propiedades:
Estas clases pueden o no tener metodos abstractos, por ejemplos metodos sin un
cuerpo ( public void get(); )
Si la clase tiene aunque sea un solo metodo abstracto debe ser declarado como
abstracto
Para usar una clase abstracta esta debe ser heredada desde otra clase y proveer
implementaciones para los metodos abstractos en ella.
Si se hereda una clase abstracta, se deben crear implementaciones para todos los
metodos en ella
Anuncios
Para entender un poco mejor este concepto veamos el siguiente ejemplo, el cual
constara de dos clases, una para nuestro empleado donde el nombre del archivo sera
Empleado.java y luego tendremos la clase que sera nuestro programa llamado
PruebaAbstracta.java para ello comencemos con la primera clase:
Empleado.java
Anuncios
Este caso es muy similar al visto al post
anterior, donde tendremos una clase
llamado Empleado, en lugar de
Trabajador, y en la cual habra un
constructor para iniciar todos los datos
del mismo, y las funciones para recuperar
los datos, una para ingresar una nueva
direccion, chequeCorreo() la cual se
encarga de noti car del envio del cheque
al empleado con el nombre y la direccion
pero observen al principio de la misma, en
ella declaramos a toda la clase como
abstracta por ende todos estos metodos son abstractos, sin necesidad de especi car en
los mismos porque se entiende que es intrinseco, pasemos al codigo de la siguiente clase
para poder probaralo:
Anuncios
En este caso creamos un objeto de la clase Empleado y con la referencia de la clase
Empleado, luego llamamos a chequeCorreo(), si lo compilamos obtendremos esta
salida:
tinchicus@dbn001vrt:~/programacion/java/codigo$ javac
PruebaAbstracta.java
PruebaAbstracta.java:5: error: Empleado is abstract; cannot be
instantiated
Empleado e = new Empleado("Martin Miranda","M.
Sosa",333);
^
1 error
tinchicus@dbn001vrt:~/programacion/java/codigo$
Anuncios
Este error es por lo que hablamos antes, una clase abstracta no puede ser instanciada
para solucionar este error deberemos agregar la siguiente clase y hacerla heredera de
Empleado:
Salario.java
Anuncios
Esta clase no solamente nos va a permitir acceder a la clase
abstracta sino a su vez instanciarla por no ser abstracta pero
con acceso a todos los metodos y/o variables que sean public
o protected, en esta clase vamos a tener dos metodos que
nos van a interesar mas, el primero es el constructor el cual
se encargara de recibir los tres datos del empleado (nombre,
direccion, numero) y el salario del mismo, luego por medio de
super enviara los tres datos a la clase abstracta y seteara los
mismos, y utilizaremos luego a setSalario() para darle el
nuevo valor a salario, luego tendremos el metodo anulado de
la clase abstracta llamado chequeCorreo() donde
modi caremos las instucciones del mismo, recuerden al
sobreescribir un metodo lo unico que cambia son las
instrucciones dentro del bloque el resto (nombre y
argumentos) debe permanecer igual, y despues tendremos
varios metodos para obtener el salario y el pago computado,
getNombre() es un metodo heredado de la clase Empleado,
ahora pasemos a modi car nuevamente a
PruebaAbstracta.java de la siguiente forma:
Anuncios
En este caso crearemos dos empleados, uno con referencia a la clase Empleado y otro
con la clase Salario pero en lugar crearlos los objetos en base a la clase abstracta
Empleado lo haremos con la clase heredera Salario, en este cargaremos los cuatro datos
que necesita Salario luego mostraremos un mensaje y llamaremos a chequeCorreo()
para ambos empleados, si lo compilamos y ejecutamos veremos el siguiente resultado:
Anuncios
En este caso funciono porque el objeto creado pudo instanciar Salario que no es
abstracto pero si tiene acceso a esta, permitiendo acceder a todos los metodos y
ejecutar nuestro programa correctamente, pasemos a la siguiente parte.
Anuncios
Metodos Abstractos
Los metodos abstractos son implementados cuando nosotros necesitamos que el
metodo sea implemetando por una de las clases hijas o herederas de nuestra clase, por
eso la declaramos como abstracta (es decir solo el tipo y nombre sin un cuerpo como
vimos antes), veamos algunas propiedades:
La palabra abstract siempre debe estar adelante del nombre de metodo, puede estar
adelante del modi cador o el tipo pero siempre delante del nombre del metodo
Los metodos abstractos siempre llevan un punto y coma al nal (;) y nunca llevan
llaves ({})
Anuncios
La clase contenedora debe ser declarada como abstracta, aunque en nuestro caso ya
era.
Todo clase heredera de esta debe rede nida el metodo declarado como abstracto.
Anuncios
Recuerden que cualquiera clase heredera debe rede nir el metodo abstracto, de lo
contrario tendras una jerarquia de clases abstractas que no se podra instanciar. En
nuestro caso solo debio hacerse una modi cacion porque nuestro metodo abstracto
estaba rede nido en su clase heredera.
Anuncios
En resumen, hoy hemos visto abstraccion, para que sirve, cual es su funcion, las clases
abstractas, como se deben implementar, los metodos abstractos, como son y como se
deben implementar, espero les haya sido util sigueme en Twitter o Facebook para
recibir una noti cacion cada vez que subo un nuevo post en este blog, nos vemos en el
proximo post.
Tambien podes donar
$1.50
← ANTERIOR SIGUIENTE →
Android / Bases de datos, onUpgrade Android / URI
Comentario *
Web
PUBLICAR EL COMENTARIO
© 2023 EL BLOG DE TINCHICUS
ESTA WEB FUNCIONA GRACIAS A WORDPRESS.COM.