El polimorfismo nos permite escribir programas para procesar objetos que
compartan la misma superclase, como si todos fueran objetos de la superclase; esto puede simplificar la programación. Clases Abstractas Modela el comportamiento común de sus clases derivadas. Establece métodos que necesariamente han de ser implementados por sus subclases. No se pueden utilizar para instanciar objetos, ya que están incompletas. Define métodos y atributos que son comunes a todas sus subclases. Métodos Abstractos Deben definirse en sus subclases Si una subclase no implementa un método heredado debe ser abstracta también. Implementa métodos que son comunes a todas sus subclases. Son declarados donde se espera que dos o más subclases cumplan un papel similar a través de diferentes implementaciones. Las clases abstractas pueden constituir varios niveles de jerarquía.