Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

20.2. Constructoren van Abstracte Basis Klassen

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

Ondanks dat we geen objecten kunnen instantiëren van het abstracte type, kan het toch nuttig zijn een constructor op te nemen in deze klassen.

De reden hiervoor is dezelfde zoals bij concrete klassen, namelijk de mogelijkheid in deze constructiecode op te nemen.

De Figure klasse zou bijvoorbeeld een constructor kunnen gebruiken om af te dwingen dat een initiële Color waarde wordt bepaald bij het creëren van een figuur.
Visual Basic 2012 Broncode - Codevoorbeeld 445
MustInherit Class Figure
    Public Property Color As String
    Protected Sub New(ByVal color As String)
        Me.Color = color
    End Sub
End Class
Class Rectangle : Inherits Figure
    Public Property Height As Double
    Public Property Width As Double
    Public Sub New(ByVal color As String, _
                   ByVal height As Double, ByVal width As Double)
        MyBase.New(color)
        Me.Height = height
        Me.Width = width
    End Sub
End Class
Class Circle : Inherits Figure
    Public Property Radius As Double
    Public Sub New(ByVal color As String, _
                   ByVal radius As Double)
        MyBase.New(color)
        Me.Radius = radius
    End Sub
End Class
Class Example
    Public Shared Sub Main()
        Dim rectangle1 As Rectangle = New Rectangle("red", 10, 20)
        Dim circle1 As Circle = New Circle("yellow", 15)
    End Sub
End Class
De constructor van een abstracte klasse kan zelfs de Public access modifier krijgen.  Doe dit echter niet, dit werkt louter verwarrend omdat Public gebruikt wordt om aan te geven dat de member in de publieke interface van dat type zit en de member dus aanroepbaar is voor clients van dat type.
Maar bij een abstracte klasse met een Public constructor blijft het onmogelijk een object van dit type te instantiëren.

Access modifier Protected is een veel meer voor de hand liggende keuze.  Een Protected member kan worden aangeroepen door de afgeleide klassen, dus kan hierbij ook de overgeërfde initialisatiecode van de constructor van die abstracte basis klasse aangeroepen worden (en herbruikt worden) in de afgeleide klassen.

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.