Sobrescrever metodo

4 respostas
R

Pessoal, estou com dúvidas a respeito dos métodos da classe Main abaixo. Quais são sobrescritos e quais são sobrecarregados?

class TesteSobrescreverMetodo {

public void metodo(int i) { }

}
public class Main extends TesteSobrescreverMetodo {

public static void main(String argv[]){

}

public void metodo(int i) {} //entendo que este método e sobrescrito (herdado da classe TesteSobrescreverMetodo)

void metodo(long i){}  //entendo que este é um novo método sobrecarregado

void metodo(){}  //entendo que este é um novo método sobrecarregado

}

estou certo das minhas afirmações?

4 Respostas

nbluis

Certo.

shoko

(Y) correct!

Mas lemrbe-se da regra = um método reescrito só pode ter visibilidade maior ou igual a do método que está sendo reescrito.

Fox_McCloud
ricardo.vertuan:
Pessoal, estou com dúvidas a respeito dos métodos da classe Main abaixo. Quais são sobrescritos e quais são sobrecarregados?
class TesteSobrescreverMetodo {
	public void metodo(int i) { }
}

public class Main extends TesteSobrescreverMetodo {
	public static void main(String argv[]){
    }
	public void metodo(int i) {} //entendo que este método e sobrescrito (herdado da classe TesteSobrescreverMetodo)
	void metodo(long i){}  //entendo que este é um novo método sobrecarregado
	void metodo(){}  //entendo que este é um novo método sobrecarregado
}
estou certo das minhas afirmações?
Procure utilizar a tag code para postar fontes...

Quando você tem um método herdado (o seu public void metodo(int i) { }) e você o reimplementa na classe filha com a mesma assinatura, então você sobrescreveu o método, porque ao invés do método herdado essa classe vai utilizar a nova implementação. Claro que dentro do método sobrescrito você ainda pode chamar o método original, com um super.metodo(i);

Quando você cria outros métodos com o mesmo nome e assinaturas diferentes, ou seja, os argumentos recebidos nos outros métodos são diferentes (como exemplos o void metodo(long i){} e o void metodo(){}), então você está criando sobrecarga, pois ao chamar o metodo dessa classe, o método invocado vai depender dos argumentos fornecidos.

As suas afirmações estão corretas, sim!

:wink:

R

Valeu pessoal, é sempre bom continuar os estudos com certeza do que aprendemos.

Obrigado!

Criado 17 de julho de 2008
Ultima resposta 17 de jul. de 2008
Respostas 4
Participantes 4