0

VB.NET で次の例を検討してください。

Module Module1
    Sub Main()
        Dim myCycle As Cycle

        'Here I am making a Superclass reference to hold a subclass object
        myCycle = New SportsCycle()
        Console.WriteLine("----Cycle Details--------")

        'Using this Object I am accessing the property Wheels of the Superclass Cycle
        Console.WriteLine("Number Of Wheels: " & myCycle.Wheels)

        'Using this Object I am accessing the property getTyp of the Subclass Cycle
        Console.WriteLine("Type Of Cycle: " & myCycle.getTyp) 'Line #1(This Line is showing error)

        Console.WriteLine("--------------------------")
        Console.ReadKey()
    End Sub
End Module
Public Class Cycle
    Private num_of_wheels As Integer

    Property Wheels As Integer
        Get
            Return num_of_wheels
        End Get
        Set(ByVal value As Integer)
            num_of_wheels = value
        End Set
    End Property
End Class
Public Class SportsCycle
    Inherits Cycle

    Private type As String

    Sub New()
        type = "RAZORBIKE"
        Wheels = 2
    End Sub

    ReadOnly Property getTyp As String
        Get
            Return type
        End Get
    End Property
End Class

上記のプログラムは、「'getTyp' は行 # 1 の Question.Cycle のメンバーではありません」というエラーを表示しています。ここで、'Question' は私のプロジェクト名です。

この概念を明確にしてください。何をする必要がありますか?

4

1 に答える 1

1

試す:

DirectCast(myCycle, SportsCycle).getTyp

この理由はCycle、このプロパティが含まれていないためですSportsCycleSportsCycleCycle を継承しているため、 にキャストしてSportsCycleプロパティにアクセスできます。

于 2013-07-15T12:26:17.350 に答える