I - Na programação orientada a objetos, o conceito que permite a uma variável, ou tipo de dado, denotar objetos diferentes de diversas subclasses pertencentes a uma superclasse comum dependendo da mensagem que lhes é passada é conhecido por exceptions.
II - Na programação orientada a objetos, uma classe abstrata normalmente possui métodos abstratos. Esses métodos são implementados nas suas classes derivadas concretas com o objetivo de definir o comportamento específico. O método abstrato define apenas a assinatura do método e, portanto, não contém código.