Conceitos : Sobrecarga (Overloading)

Sobrecarga ou Overloading o que é isso ?

Se você esta vindo de uma linguagem procedural como Clipper, Dbase , Basic ou se esta começando agora tendo o VB como sua primeira linguagem de programação pode estranhar o termo. Mas é apenas uma questão de prática.

Sobrecarga é a habilidade de poder definir diversas propriedades , métodos ou procedimentos em uma classe com o mesmo nome.

Você entendeu ?

Bem,  vou ser mais claro.

Se você criar dois procedimentos em seu aplicativo com o mesmo nome e com argumentos diferentes estará usando sobrecarga.

Você deve estar se perguntando: "Como posso criar dois procedimentos com o mesmo nome ? Como vou diferenciá-los ? ".

Garoto 'experto' você !!!

Você vai diferenciar os procedimentos pela lista de argumentos que eles vão possuir , isto é , os procedimentos terão argumentos diferentes. Vou dar um exemplo :

Suponha que você precise criar uma classe com um método que retorne o valor da área de um quadrado , só que este método vai poder aceitar como parâmetro uma string ou um número.

Veja a solução genérica :

Function Calcula_Area(ByVal lado As Double) As Double

Return lado * lado

End Function
Function Calcula_Area(ByVal lado As String) As Double
Dim ld as Double
ld = CDbl(lado)

Return ld * ld

End Function

Você tem duas funções com o mesmo nome mas que possuem argumentos diferentes e que fornecem o mesmo resultado.

Para usar a sobrecarga no VB.NET todos os membros sobrecarregados devem ser declarados com a palavra-chave : Overloads.

Veja como ficaria no VB.NET :

Overloads Function Calcula_Area(ByVal lado As Double) As Double

Return lado * lado

End Function
Overloads Function Calcula_Area(ByVal lado As String) As Double

Dim ld As Double
ld = CDbl(lado)

Return ld * ld

End Function

Podemos criar mais métodos com argumentos diferentes. Suponha que você tenha que calcular a área de um triângulo também.

Como você deve saber das aulas de matemática do colégio (que você amava ) a área de um triângulo é : (base x altura)/2 , logo você vai precisar de mais um argumento: a altura.

Veja como fica o método sobrecarregado:

Overloads Function Calcula_Area(ByVal Base As Double, ByVal Altura As Double) As Double

Return (Base * Altura) / 2

End Function

Este conceito é muito usado para definir múltiplos construtores para um objeto. Mas isto é assunto para um outro artigo: Construtores.

Então até lá...


Veja os Destaques e novidades do SUPER DVD VB (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira...

Quer aprender C# ??

Chegou o Super DVD C# com exclusivo material de suporte e vídeo aulas com curso básico sobre C#

Veja também os cursos em Vídeo Aulas :

  Gostou ?   Compartilhe no Facebook    Compartilhe no Twitter

Referências:


José Carlos Macoratti