Sejam as seguintes classes Java, que ocupam, cada qual, o s...

Próximas questões
Com base no mesmo assunto
Q2383106 Programação
Sejam as seguintes classes Java, que ocupam, cada qual, o seu próprio arquivo:

Imagem associada para resolução da questão


Qual classe poderá ser inserida em um projeto, juntamente com as classes acima, sem produzir erros de compilação? 
Alternativas

Comentários

Veja os comentários dos nossos alunos

LETRA B:

XP2A, XP1A

XP1A extende a XP01, então não haveria erro de compilação

De acordo com o princípio da substituição de Liskov: "um objeto da SUPERCLASSE deve poder ser substituído por um objeto de SUBCLASSE sem causar problemas''.

Como IP- é subclasse de IPx, e IPx lança XP01 e XP2A, eu preciso que IP trate essas exceções ou declare seu lançamento para as classes inferiores (todas as alternativas são o segundo caso). Como nenhuma alternativa lança XP01 e XP2A diretamente, você pode substituir os objetos de Exceção por outros na linha de herança, desde que estejam ABAIXO na hierarquia.

A - Você não pode substituir um objeto mais especializado por outro mais generalizado e nem deve repetir a mesma exceção.

B - XP1A pode tomar o lugar de XP01, mas não o contrário. Tá certo

C - Você não pode substituir um objeto de superclasse no lugar de um se subclasse.

D - Você não pode substituir um objeto de superclasse no lugar de um se subclasse.

E - Você não pode substituir um objeto de superclasse no lugar de um se subclasse.

Outras alternativas que seriam verdaderias:

*Se IP- só lançasse um dos dois, XP01 ou XP2A

*Se IP não lançasse exceções.

Resumindo

Você só pode apontar para a mesma classe ou para a subclasse que herdou essa classe.

A class IPx aponta pra XP01 e XP2A

Como XP01 é pai da XP1A

Então só vamos poder apontar para XP01 e XP2A ou XP1A e XP2A.

Não temos a primeira opção, mas temos a segunda opção na alternativa B

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo