webForumDet fria alternativet

ärvda klasser i vb

.NET

6 svar · 251 visningar · startad av jake

Medlem sedan sep. 2001649 inlägg
Frågan#1

Har två klasser i vb.net som liknar varandra så tänkte att den ena skulle ärva den andra och använda overridable för det som skiljer dom...

Public Class Class2

    Inherits Class1

    Public Overrides Sub Flytta()
        x = x - Ökning
        y = y + Ökning
    End Sub
End Class

När jag deklarerar variablerna direkt i klass 2 fungerar det men när jag ersätter det med
inherits klass1 där alla varibler finns deklarerade så verkar den inte x y och ökning vara deklarerade.
Något mer man måste göra för att klass2 ska få tillgång till variablerna från klass1?

Medlem sedan juni 20022 599 inlägg
#2

Är x och y deklarerade som Protected i Class1?

Medlem sedan sep. 2001649 inlägg
#3

nej som public...

Public Class Class1
    Dim x, y As Integer
    Const Ökning = 10

    Public Property xspot() As Integer
        Get
            xspot = x
        End Get
        Set(ByVal Value As Integer)
            x = Value
        End Set
    End Property

    Public Property yspot() As Integer
        Get
            yspot = y
        End Get
        Set(ByVal Value As Integer)
            y = Value
        End Set
    End Property

    Public Overridable Sub Flytta()
        x = x + Ökning
        y = y - Ökning
    End Sub
End Class
Medlem sedan juni 20022 599 inlägg
#4

jake skrev:

nej som public...

Nej, som du deklarerar dem: Dim x, y As Integer så defaultar dom nog till Private.

Om du vill kunna använda dem som du tänker göra i din ärva klass så bör du skriva: Protected x, y As Integer.

Medlem sedan sep. 2001649 inlägg
#5

ok...

hur blir det med konstanten då...?

Medlem sedan juni 20022 599 inlägg
#6

Vet inte riktigt ..

Vad säger kompilatorn om:

Protected Shared Ökning = 10?

eller kan man rent av skriva:

Protected Const Ökning = 10?

.. är osäker.

Medlem sedan sep. 2001649 inlägg
#7

ja det fungerade...

tack.

282 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
149 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)