Ho sovraccaricato la funzione Area() in modo da potere, con l'aggiunta di un parametro qualunque, avere il risultato intero anzichè decimale.
Non mi piace molto, perchè il parametro c'entra un po' come un cavolo a merenda...
Comunque il meccanismo dell'overloading funziona: se c'è il parametro l'area viene calcolata come Integer, se non c'è viene calcolata come Double.
Module Module1
Sub Main()
Dim mioTriangolo As New Triangolo(5.5, 3)
Console.WriteLine(mioTriangolo.Area())
Console.ReadKey()
Console.WriteLine(mioTriangolo.Area(""))
Console.ReadKey()
End Sub
End Module
MustInherit Class figura
Protected base As Double
Protected altezza As Double
Sub New(ByVal b As Double, ByVal a As Double)
base = b
altezza = a
End Sub
MustOverride Function Area() As Double
MustOverride Function Area(ByVal p As String) As Integer
End Class
Class Triangolo
Inherits figura
Sub New(ByVal b As Double, ByVal a As Double)
MyBase.New(b, a)
End Sub
Public Overrides Function Area() As Double
Return base * altezza / 2
End Function
Public Overrides Function Area(ByVal par As String) As Integer
Return base * altezza / 2
End Function
End Class
Ed ecco il calcolo come Double e come Integer.
8,25 8
Nessun commento:
Posta un commento