Otras lecciones del Curso de Java
¿Qué es IO en Java?
¿Cúales son los Operadores en Java?
¿Qué tipos de Variables hay en Java?
¿Cómo funciona Continue y Break en Java?
¿Cómo aplicar un Try Catch y Finally en Java?
¿Cómo utilizar el método super en Java?
¿Cómo trabajar con listas en Java?
¿Cuáles son los métodos de la clase String en Java?
¿Qué es un entorno de desarrollo en Java?
¿Qué es la Sobreescritura de métodos en Java?
¿Cómo utilizar un return en Java?
¿Cómo hacer un Hola Mundo en Java?
¿Cómo utilizar Throw y throws en Java?
¿Cómo hacer comentarios en Java?
¿Cuáles son las Palabras reservadas en Java?
Variables de entorno en Java
Características y estadísticas de Java e índice TIOBE
Estructura de proyecto, paquetes y clases en Java
Qué es una función en Java
¿Cómo funcionan las Funciones Java?
Operadores aritméticos en Java
Operadores de comparación en Java
Funciones anónimas en Java
Cómo invocar una función en Java
Atajos de teclado para IntelliJ
¿Qué es la Sobrecarga de funciones en Java?
Operadores lógicos en Java
Debug en Java
Como se crea una función en Java
¿Cómo crear Sentencias Switch en Java?
Bucles for en Java
¿Cómo hacer sentencias If e If else en Java?
¿Cómo funcionan los Bucles While en Java?
¿Qué son los objetos en Java?
¿Qué es el modificador static en Java y cómo se utiliza?
¿Qué es la herencia en Java?
¿Qué son los constructores en Java y cómo se utilizan?
¿Cómo crear clases en Java?
¿Qué es el Polimorfismo en Java?
¿Qué es la Programación genérica en Java?
¿Qué son las Interfaces de Java?
Implementación de una interface en Java
¿Cómo se hace refactoring en Java?
¿Cómo trabajar con Maps en Java?
¿Como funcionan los arrays en Java?
¿Cómo generar excepciones en Java?
¿Qué es la clase Scanner en Java?
Introducción a Swing en Java
¿Quieres descubrir más cosas como Clases abstractas en Java?¡Apuntate a nuestro campus y empieza a aprender con nosotros y con toda la comunidad!

La abstracción en la programación orientada a objetos es un concepto muy importante y se utiliza para reducir la complejidad de un programa, a través del uso de clases e interfaces abstractas, que permite la reutilización de código y la simplificación del mismo a través de la herencia.

Una clase abstracta es una clase base para otras clases llamadas “clases concretas” o clases reales. 

La finalidad de esta clase consiste en ocultar lo complicado de nuestro código y ofrecernos funciones de alto nivel, sencillas de utilizar para interactuar con nuestra aplicación sin conocer cómo funciona por dentro.

Con la abstracción captamos los comportamientos y atributos de un objeto, ocultando detalles y solo mostrando información esencial.

Una clase abstracta es una clase común que posee atributos y métodos, y tiene como mínimo un método abstracto, además puede contener métodos normales.

Esta clase no puede ser instanciada, solo puede heredarse, o sea no se puede usar para crear un objeto.

La creación del objeto se hará a través de sus clases hijas, las cuales están obligadas a implementar los métodos abstractos definidos en la clase principal.

Para poder implementar los métodos, la subclase debe hacerlo a través del uso de la palabra reservada extends. Cuando se crea la subclase la misma “extiende” esos comportamientos desde una clase padre, en este caso abstracta y así el objeto que se creará luego heredará todos los atributos y métodos definidos previamente.

Para definir una clase como abstracta, utilizamos la palabra reservada abstract.

Una clase abstracta está restringida en su uso, no permite crear objetos, para la creación de los mismos se deben heredar las características y métodos a otra clase, conocida como clase hija o subclase.

Un método abstracto, sólo puede ser usado y estar definido dentro de una clase abstracta.

El método abstracto no tiene cuerpo y no están implementadas sus funciones, es obligatorio redefinir a través de una clase hija que lo hereda, esta es la clase “real” que proporcionará el cuerpo para dicho método.

La subclase es la encargada de implementar estas funciones, de manera obligatoria.

La clase abstracta sirve para implementar clases parcialmente.

¿De qué hablamos cuando decimos “implementar una clase parcialmente”?

Que una clase abstracta se implemente parcialmente significa, que al definirla, solo le damos los nombres de los métodos a implementar, pero no cómo hacerlo.

Es como si la clase abstracta dijera “Te llamarás Juan y serás cocinero” pero no le indica a la clase hija como llegar a “ser cocinero”, eso queda a criterio de la clase que hereda.

Por lo tanto podríamos decir que nos da las órdenes para implementar funciones mediante la herencia.

La clase padre nos dice que tenemos que hacer, no importa cómo, solo que cumplamos con la norma.

La implementación definitiva queda a cargo de las clases hijas que heredan esos nombres sin cuerpo (métodos vacíos) y luego esas clases hijas deciden la forma de implementarlos. 

Para poder utilizar los métodos de una clase abstracta sí o sí, deberemos crear una clase hija y esta deberá crear implementaciones para todos los métodos definidos en la clase principal.

Ejemplo de clase abstracta en Java

  public abstract class Felino {
    // clase abstracta

    public abstract void Alimentarse(); //metodo abstracto, vacio

}

Ejemplo de Clase que hereda o subclase en Java

  public  class Gato extends Felino
  {
public void Alimentarse()
    {
    System.out.println(“El Gato come croquetas”);
    }
  }

Ejemplo de Clase para crear el objeto en Java

class Main{

        public static void main(String[] args) {
            Gato gatito = new Gato();
            gatito.Alimentarse();
            }
         }
¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: