Compile time polymorphism - Method OverLoading

Polymorphism is an important concept of OOPs. Polymorphism feature enables classes to provide different implementation of methods having the same name. This feature allows us to define any number of methods with the same name but different signatures. A signature is a method's name and the number, type and the order of parameters.

This is also sometimes called as method overloading. In method overloading, a method is executed depending on the number and type of parameters passed to it.

When we compile the class, the compiler binds the appropriate method to the object based on the method's arguments. This is called early binding and this process is referred to as compile time polymorphism. The example given below demonstrates compile time polymorphism using overloaded methods.

Public Class ArthemeticSum
    Public Function Sum(ByVal a As Integer, ByVal b As Integer) As Integer
        Dim result = a + b
        Return result
    End Function

    Public Function Sum(ByVal a As Long, ByVal b As Long) As Long
        Dim result = a + b
        Return result
    End Function

    Public Function Sum(ByVal a As Double, ByVal b As Double) As Double
        Dim result = a + b
        Return result
    End Function
End Class

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
	Dim obj As ArthemeticSum = New ArthemeticSum()
	Dim intTot = obj.Sum(10, 10)
	MessageBox.Show(intTot.ToString())
	Dim DoubleTot = obj.Sum(10.2, 10.89)
	MessageBox.Show(DoubleTot.ToString())
End Sub


In the above code, we overload the method 'Sum' by passing different types of values and call each of the overloaded Sum methods from the Form_Load method.