MustInherit Class figura
Protected base As Integer
Protected altezza As Integer
Sub New(ByVal b As Integer, ByVal a As Integer)
base = b
altezza = a
End Sub
MustOverride Function Area()
End Class
Ecco: le proprietà sono Protected per essere visibili dalle classi derivate.La funzione è MustOverride, ovviamente...
E ho creato un costruttore, perchè il costruttore della classe derivata possa fare riferimento a questo.
Ecco le classi derivate:
Class Triangolo
Inherits figura
Sub New(ByVal b As Integer, ByVal a As Integer)
MyBase.New(b, a)
End Sub
Public Overrides Function Area() As Object
Return base * altezza / 2
End Function
End Class
Class Rettangolo
Inherits figura
Sub New(ByVal b As Integer, ByVal a As Integer)
MyBase.New(b, a)
End Sub
Public Overrides Function Area() As Object
Return base * altezza
End Function
End Class
Le istanzio così:
Sub Main()
Dim mioTriangolo As New Triangolo(5, 4)
Console.WriteLine(mioTriangolo.Area)
Console.ReadKey()
Dim mioRettangolo As New Rettangolo(5, 4)
Console.WriteLine(mioRettangolo.Area)
Console.ReadKey()
End Sub
E sembra funzionare:
10 20
Ma ho subito un'altra idea... E se volessi creare una classe derivata Trapezio? La questione è interessante, perchè in questo caso dovrei aggiungere una proprietà in più nella sola classe derivata, ossia la base minore...
Lo vedrò successivamente...
Nessun commento:
Posta un commento