Qual a diferença entre sobregcarga e sobrescrita de método? Não ficou muito claro
Qual a diferença entre sobregcarga e sobrescrita de método? Não ficou muito claro
Sobrecarga é você ter dois ou mais métodos com o mesmo nome, mas variando os tipos dos parametros que esse método recebe.
Exemplo:
public void MetodoTeste(int valorA){ ... }
public void MetodoTeste(string valorA){ ... }
public void MetodoTeste(int valorA, string valorB){ ... }
Sobrescrita é você sobrescrever o comportamento de um método.
Exemplo:
Dado o cenário que tenho uma classe base Movel, e uma classe derivada Cama.
class Movel {
public virtual void Preco(){
//corpo do método
}
}
class Cama : Movel {
public override void Preco(){
//corpo do método
}
}
Sendo assim, quando você instanciar um objeto do tipo Cama, o método Preço será executado de acordo com a operação que estiver dentro do método Cama.Preço, pois ele está sobrescrevendo o método Preço da classe base (Movel). Em suma, podemos reescrever nas classes filhas (derivadas) métodos criados inicialmente na classe pai (base).