Considere a execução dos códigos Java abaixo.A saída correta é
Considere a execução dos códigos Java abaixo.
A saída correta é
Comentários
Veja os comentários dos nossos alunos
Analisando o método principal:
public static void main
S2 s;
s=new S2(); // Cria um novo objeto da classe S2, portanto chamaremos o método mostra da classe S2.JAVA
s.x=10;
s.y=6;
s.mostra();
Chamando o método, ignore o super.y=10; pois está ali somente para confundir.
public void mostra(); // da classe S2.java
System.out.println( "x="+(++x)+" e" +"y ="+(y+x));
x=10 , y = 6
(pré-incremento) ++ x = 11
x+y= 11+6 = 17
System.out.println x = 11 e y = 17
GABARITO ALTERNATIVA D
So acertei por causa do "x" e como so tinha uma alternativa com ele valendo 11.....
O resultado correto é X=11 e y =21. O examinador não rodou o código.
y = 10 é atriubído dentro do método mostra.
Tive que rodar o código aqui pq estava muito desconfiado do gabarito. Não tem resposta certa, então, marca-se pelo X = 11 mesmo.
Pq a palavra "prova" não deveria aparecer?
R Filosofo, a palavra mostra não aparece pq quando ele cria o objeto como s = new S2(); , sempre que o s.chamarMetodo for utilizado, ele procura primeiro em S2, caso não exista o método ou atributo ele vai em S1. Na questão, na classe S2 existe o método mostra que sobrescreve o método mostra da sua superclasse S1.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo