Index  -  Omat luokat - New - Get ja Set - Metodit - Perintä -Override - Implements

Overrides

Overrides osoittaa, että luokan ominaisuus korvaa kantaluokassa olevan täysin samannimisen ominaisuuden. Datan tyypin ja argumenttien määrän tulee täsmätä kantaluokan kanssa.


1) Muutetaan kantaluokan ominaisuus korvattavissa olevaksi
        Private _Väri As String

        Overridable Property Väri() As String
            Get
                Return _Väri
            End Get
            Set(ByVal Value As String)
                _Väri = Value
            End Set
        End Property

2) Tehdään lapsi-luokkaan ominaisuus, joka korvaa vastaavalla nimellä kirjoitetun kantaluokan ominaisuuden.
        Private _PäällysteenVäri As String

        Overrides Property Väri() As String    ' uusi lisättävä ominaisuus
            Get
                Return _PäällysteenVäri
            End Get
            Set(ByVal Value As String)
                _PäällysteenVäri = Value
            End Set
        End Property

Tähän vielä koko esimerkki:

 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Pöytä As Huonekalu = New Huonekalu
        Pöytä.Laji = "Ruokapöytä"
        Pöytä.Tyyli = "Talonpoikais"
        Pöytä.Ostohinta = 389.0F
        Pöytä.ValmVuosi = #1/7/1889#
        Dim ikä As Integer = Pöytä.ikä
        Dim Myyntihinta As Single = Pöytä.LaskeMyyntihinta(40.0F) 'kate pros = 40%
        Dim Tuoli2 As Tuoli = New Tuoli
        Tuoli2.Laji = "Nojatuoli"
        Tuoli2.Ostohinta = 123.5F
        Myyntihinta = Tuoli2.LaskeMyyntihinta(50)
        Tuoli2.Päällyste = "Nahka"
        Tuoli2.Väri = "Ruskea"
        'haetaan rekisteröinti pvm, joka on tehnyt "huonekalu" luokassa
        Dim pvm As Date = Tuoli2._RekisteröintiPVM
    End Sub
    '
    Public Class Tuoli
        Inherits Huonekalu ' perintä luokasta Huonekalu
        Private _Päällyste As String
        Private _PäällysteenVäri As String
        Sub New()
            MyBase.New() ' kutsutaan luokan huonekalu luontia
        End Sub
        Overrides Property Väri() As String    ' uusi lisättävä ominaisuus
            Get
                Return _PäällysteenVäri
            End Get
            Set(ByVal Value As String)
                _PäällysteenVäri = Value
            End Set
        End Property
        Property Päällyste() As String ' uusi lisättävä ominaisuus
            Get
                Return _Päällyste
            End Get
            Set(ByVal Value As String)
                _Päällyste = Value
            End Set
        End Property
    End Class
    '
    Public Class Huonekalu
        Private _Laji As String
        Private _Tyyli As String
        Private _Ostohinta As Single
        Private _ValmVuosi As Date
        Private _Väri As String
        Public ReadOnly _RekisteröintiPVM As Date
        Sub New() ' new ajetaan aina kun objekti tehdään
            _RekisteröintiPVM = Now
        End Sub
        Public Function LaskeMyyntihinta(ByVal katepros As Single) As Single
            Return _Ostohinta / (1 - katepros / 100.0F) * 1.22F
        End Function
        Overridable Property Väri() As String
            Get
                Return _Väri
            End Get
            Set(ByVal Value As String)
                _Väri = Value
            End Set
        End Property
        Property Laji() As String
            Get
                Return _Laji
            End Get
            Set(ByVal Value As String)
                _Laji = Value
            End Set
        End Property
        Property Tyyli() As String
            Get
                Return _Tyyli
            End Get
            Set(ByVal Value As String)
                _Tyyli = Value
            End Set
        End Property
        Property Ostohinta() As Single
            Get
                Return _Ostohinta
            End Get
            Set(ByVal Value As Single)
                _Ostohinta = Value
            End Set
        End Property
        Property ValmVuosi() As Date
            Get
                Return _ValmVuosi
            End Get
            Set(ByVal Value As Date)
                _ValmVuosi = Value
            End Set
        End Property
        ReadOnly Property ikä() As Integer
            Get
                ikä = Now.Year - _ValmVuosi.Year
            End Get
            ' set puuttuu koska vain luettava ominaisuus
        End Property
    End Class
 End Class