Qual a diferença entre substituir e sobrepor um método?
Substituir e Sobrepor
9 Respostas
sobrescrever ou sobrecarregar um metodo, vc quer dizer? :)
Sobrescrever eh "passar por cima" do mesmo metodo que existe na classe pai. Exemplinho:
public class Foo {
void doStuff() { ... }
}
public class Bar extends Foo {
void doStuff { blahblahblah(); }
}
Ja a sobrecarga funciona quando se define um metodo com o mesmo nome, mas de assinatura diferente:
public class Foo {
void doStuff(String foo) { ... }
void doStuff(int foo, int bar) { ... }
}
Pegou? ;)
Deixe me ver se entendi, quando eu declaro o mesmo método da minha superclasse mudança somente os parâmetros passados para ele, eu estou sobrepondo ele, e quando eu mudo só o interior dele eu estou sobreescrevendo o método, é isso?
Nao. Quando voce reimplementa um metodo ja existente na superclasse - com exatamente a mesma assinatura, vc esta sobrepondo, ou sobrescrevendo, este metodo.
Quando vc escreve um outro metodo que tem o mesmo nome, mas assinatura diferente, voce esta sobrecarregando. 
Quando você fala em assinatura, você está querendo dizer os parâmetros né?
assinatura = nome + parametros + excecoes lancadas. O tipo do retorno nao conta como parte da assinatura.
Método:
public void fazerAlgo( ) {
//implementação
}
Assinatura do método acima:
Outro método:
e a assinatura é:
Pééééé. O retorno não conta como parte da assinatura, destro!
Achado na internet: “Method signature is the method’s name and the number of its parameters and the types of its parameters”.
Tá certo cv e pessoal. Retiro o que eu disse algumas respostas acima. Esqueçam do modificador e do tipo de retorno.
CORRIGINDO:
Método:
public void fazerAlgo( ) {
//implementação
}
Assinatura do método acima:
Outro método:
e a assinatura é: