Questão nº 62
Questão de Tecnologia da Informação · FGV MPMS 2012 (nº 62)
Observe o código Java a seguir e o seu diagrama de classes UML equivalente.
public class Super {
public void ma() {
// faz alguma coisa...
}
private void mb() {
// faz alguma coisa...
}
}
class Sub extends Super {
public void mc() {
// faz alguma coisa...
}
}

Assinale a alternativa que indica os métodos que estão disponíveis para uma instância da classe Sub.
- Asomente os métodos ma() e mc(). (alternativa correta)
- Bsomente o método mc().
- Cos métodos ma(), mb() e mc().
- Dsomente os métodos mb() e mc().
- Esomente os métodos ma() e mb().
Resposta comentada
Gabarito Alternativa A
Herança faz a classe Sub ganhar os métodos públicos e protegidos da superclasse Super, mas nunca os privados (private). Método privado só existe dentro da própria classe onde foi declarado.
- (A) Correta:
ma()é público e herdado;mc()é da própriaSub;mb()é privado deSupere não é acessível via herança. - (B) Incorreta: esquece que
ma()também é herdado, pois é público. - (C) Incorreta: inclui
mb(), que é privado e não é visível para a subclasse — essa é a pegadinha clássica: achar queprivateé herdado. - (D) Incorreta: exclui
ma()(que é herdado) e incluimb()(que não é). - (E) Incorreta: inclui
mb()e omitemc(), que é da própriaSub.
Fonte: FGV MPMS 2012 Técnico I - Informática. Reproduzida para fins de estudo.