Considere a execução dos códigos Java abaixo.A saída correta é

Próximas questões
Com base no mesmo assunto
Q946484 Programação

Considere a execução dos códigos Java abaixo.


Imagem associada para resolução da questão

A saída correta é

Alternativas

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