dúvida sobre questão

1 resposta
T

Saudações pessoal, por favor, alguém poderia me responder porque o resultado da questão a seguir é 10?

public class Teste{

public static void main(String args[]){

MyB m = new MyB();

System.out.println(m.getA());

}	

}

class MyA{
int a = 10;

int getA(){
	return a;
}

}

class MyB extends MyA{

int a = 20;	

}

Obrigado a todos.

1 Resposta

R

Você cria um objeto m

MyB m = new MyB();

este objeto m é do tipo MyB, porém extende MyA

class MyB extends MyA

quando você invocou getA()

System.out.println(m.getA());

você invocou um método de que classe???

MyB nem ao menos tem esse metodo

class MyB extends MyA{ 
int a = 20; 
}

porem, MyA tem

class MyA{ 
int a = 10; 

int getA(){ 
return a; 
} 
}

resumindo, quando vc invocou o método getA(), vc invocou um metodo que esta declarado na superclasse...

ps. só um conselho, não use um titulo "dúvida sobre questão", use algo relacionado a sua duvida... vc aumenta as possibilidades de uma resposta satisfatória

ps2. se não tiver entendido, pode perguntar...

[]'s
[/code]

Criado 23 de junho de 2006
Ultima resposta 23 de jun. de 2006
Respostas 1
Participantes 2