Buenas,
Tu puedes crear una sobrecarga para un operador y ésta se usará para todas las clases que deriven de ellas, a no ser que definas una sobrecarga de operador para una clase concreta hija.
Código vb:
Ver originalShared Operator >(ByVal animal1 As Animal, ByVal animal2 As Animal) As Boolean
Return animal1._hambre > animal2._hambre
End Operator
Shared Operator <(ByVal animal1 As Animal, ByVal animal2 As Animal) As Boolean
Return animal1._hambre < animal2._hambre
End Operator
Imagínate que defines estas sobrecargas, tu luego puedes hacer:
Código vb:
Ver originalDim cerdo = New Cerdo
Dim ganso = New Ganso
cerdo.Hambre = 50
ganso.Hambre = 10
If (cerdo > ganso) Then
Console.WriteLine("El cerdo tiene más hambre que el ganso")
Else
Console.WriteLine("El ganso tiene más hambre que el cerdo")
End If
Y puedes porque tanto Cerdo como Ganso son Animales.
Espero que eso responda a tu pregunta.
Saludos.