Como utilizar las clases abstractas en Java

Hola a todos, hoy os explicare que son y para que sirven las clases abstractas en Java.

Una clase abstracta es una clase con 0 o mas métodos sin implementar (igual que hacíamos con las interfaces). Cuando una clase es abstracta, no se pueden crear objetos de estas clases, en las clases hijas sera donde se implementen los métodos no implementados en la clase padre.

Como hacer clases abstractas

Para indicar que una clase es abstracta, escribimos abstract entre el modificador de acceso y class, así quedaría:

Dejamos un método sin implementar, por ejemplo, el método plus, para que cada clase hija implemente su propio método de forma diferente:

Como vemos, incluimos la palabra abstract igual que en la clase.

Ejemplo

Veamos un ejemplo completo:

–Clase padre abstracta

–Clase hija

–Clase ejecutable

La idea de las clases abstractas es que tengamos una clase padre que sirva como plantilla para las clases hijas, en las clases hijas se implementaran los métodos abstractos de la clase padre.

Aunque no puedan crear objetos, si se pueden crear array de objetos de una clase abstracta.

Las clases abstractas tienen una gran ventaja y es que no necesita hacer casting de objetos ni utilizar el operador instanceof.

Te dejo un video para complementar:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

7 comentarios

  1. JUAN DAVID MEJIA DONOSO

    En conclusion que hace todo el programa amigo no entiendo! ayuda con eso porfa

  2. admin Post author

    Simplemente on definicion de clases, si intentas crear una instancia de una clase Empleado no te dejará, como he puesto en el post, es como una plantilla.

    Espero que te sea de ayuda.

  3. Juan

    Una duda, ¿en el constructor sin argumentos de Comercial no habría que usar «super» para llamar al constructor de la clase padre?

  4. admin Post author

    Si, tienes razón. Un despiste.

    Ya esta modificado. Gracias y un saludo

  5. Andres R

    Excelente ayuda amigo, muy buena explicación espero me puedas ayudar en unas consultas próximas.

  6. frederick

    Una duda para que le pones protected a las propiedades de la case y luego usa metodos set para asignarle valor a las propiedades si lo puede hacer directamente desde la propiedades ??

  7. Ivonne

    Primero muchas gracias, me estas sirviendo mucho, pero al hacer la clase padre abstract me sale error al declarar los constructor, dice que no pueden ser public, aunque los otros métodos public si me deja sin problema, sabes por que es?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539