Clases abstractas



Las clases abstractas, como su nombre lo indica, son algo abstracto, no representan algo específico y las podemos usar para crear otras clases. No pueden ser instanciadas, por lo que no podemos crear nuevos objetos con ellas.

Podemos imaginar una clase Animal, con métodos como caminar y comer, como una clase base que podemos heredar para construir otras clases como León o Pájaros. Ambas van a heredar de nuestra clase animal con sus respectivos métodos y tendremos la posibilidad de crear nuestros objetos. De esta manera podemos reducir código duplicado y mejorar la calidad del código.

En Java declaramos una clase abstracta con la palabra reservada abstract.

También podemos hacer lo mismo con los métodos: si una clase tiene métodos abstractos, entonces nuestra clase deberá ser abstracta.

Nuestro método abstracto será compartido por las clases que hereden de nuestra clase abstracta. En el ejemplo, un animal puede comportarse de manera similar y realizar las mismas acciones, como caminar, comer y dormir, pero el sonido emitido no será igual en todos ellos, no escucharás a un pájaro rugir como un león.

Ejemplo:

1             package EjemplosPOO.ejemplo04; 
2            
3             public class Main
4             {
5                 public static void main(String[] args)
6                 {
7                     Animal p = new Perro();
8            
9                     p.setNombre("TOBI");
10                   p.comer();
11                   p.caminar();
12                   p.sonido();
13          
14                   System.out.println("-------------");
15          
16                   Animal g = new Gato();
17          
18                   g.setNombre("MICIFUS");
19                   g.comer();
20                   g.caminar();
21                   g.sonido();
22               }
23           }


Animal.java (nuestra clase abstracta):

Expand Code

Perro.java (hereda de Animal):

Expand Code

Gato.java (hereda de Animal):

Expand Code

Al ejecutar el programa veríamos lo siguiente:


Para ver más: 


Referencias:

Clases abstractas en programación orientada a objetos. (2021). Consultado el 15 de Mayo de 2021 en Informaticapc.com sitio web: https://informaticapc.com/poo/clases-abstractas.php


Comentarios