Forzosamente, en algún punto de las clases superiores habrá un if comprobando la pertenencia del objeto a distintas subclases, impidiendo la abstracción de las clases superiores respecto a las inferiores.