En POO además de poder heredar comportamientos o atributos, también es posible permitir que dichos comportamientos o características, sean definidos por las clases que implementen una clase abstracta.

DEFINAMOS

La Clase abstracta es una forma para definir un tipo de Objeto genérico, por lo tanto no será posible crear una instancia a partir de dicha clase.

Por ejemplo, pensemos en clases como Carro, Avión, Cicla o Barco, en común se puede abstraer que todos ellos son vehículos, así la definición de un tipo abstracto será la clase Vehiculo.


    public abstract class Vehiculo
    {
        public abstract void Encender();
        public abstract void Mover();
        public abstract void Parar();
        public abstract void Apagar();
    }

Un Vehiculo no constituye nada puntual para un software orientado a objetos, por lo tanto nunca podría crearse un objeto a partir de esta clase:

Pero si podemos crear clases las cuales hereden esa la clase abstracta:

    public class Avion: Vehiculo
    {

        public override void Encender()
        {

        }

        public override void Mover()
        {

        }

        public override void Parar()
        {

        }

        public override void Apagar()
        {

        }
    }

    public class Carro : Vehiculo
    {

        public override void Encender()
        {

        }

        public override void Mover()
        {

        }

        public override void Parar()
        {

        }

        public override void Apagar()
        {

        }
    }

     public class Barco: Vehiculo
    {

        public override void Encender()
        {

        }

        public override void Mover()
        {

        }

        public override void Parar()
        {

        }

        public override void Apagar()
        {

        }
    }

Así al inicializar un avión, carro o barco, lo que realmente se está haciendo es crear la instancia de un objeto tipo Vehiculo.

Pero esto no se diferencia mucho de lo que se vio en el capítulo anterior de Herencia. Entonces ¿Qué es y para que sirve una clase abstracta?

Para explicar esto veamos el siguiente ejemplo:

Para el ejemplo de la clase Vehiculo existen acciones (métodos) abstractas por ejemplo: Encender, Mover, Parar y Apagar pero para este caso será la responsabilidad de cada Subclase (Carro, Barco, Avion) implementar lo necesario para llevar a cabo esos procesos.

Páginas: 1 2