Todo sobre: Clases Abstractas

Clases Abstractas


Son clases de las que no es posible crear instancias; frecuentemente, están implementadas sólo parcialmente o no están implementadas. Una clase abstracta es aquella que forzosamente se ha de derivar si se desea que se puedan crear objetos de la misma o acceder a sus miembros estáticos. 
El modificador abstract se utiliza para indicar que una clase está incompleta y que sólo se va a utilizar como una clase base. 

Una clase abstracta se diferencia de una clase no abstracta en lo siguiente:


  • No se puede crear una instancia de una clase abstracta directamente, y es un error en tiempo de compilación utilizar el operador new en una clase abstracta. Aunque es posible tener variables y valores cuyos tipos en tiempo de compilación sean abstractos, tales variables y valores serán null o contendrán referencias a instancias de clases no abstractas derivadas de los tipos abstractos.
  • Se permite que una clase abstracta contenga miembros abstractos, aunque no es necesario.
  • No se puede sellar una clase abstracta.
  • Cuando una clase no abstracta se deriva de una clase abstracta, la clase no abstracta debe incluir implementaciones reales de todos los miembros abstractos heredados; por lo tanto, reemplaza a estos miembros abstractos