Substituir e Sobrepor

9 respostas
P

Qual a diferença entre substituir e sobrepor um método?

9 Respostas

C

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? ;)

P

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?

C

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. :wink:

P

Quando você fala em assinatura, você está querendo dizer os parâmetros né?

C

assinatura = nome + parametros + excecoes lancadas. O tipo do retorno nao conta como parte da assinatura.

D

Método:

public void fazerAlgo( ) { //implementação }

Assinatura do método acima:

Outro método:

e a assinatura é:

C

Pééééé. O retorno não conta como parte da assinatura, destro!

D

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.

D

CORRIGINDO:

Método:

public void fazerAlgo( ) { //implementação }

Assinatura do método acima:

Outro método:

e a assinatura é:

Criado 9 de março de 2004
Ultima resposta 10 de mar. de 2004
Respostas 9
Participantes 3