3

私は VB.net にかなり慣れていないので、このコードをコンパイルできません。その理由もわかりません。

MustInherit Class Poligono

    Protected p_cant_Lados As Integer
    Public Property cant_Lados() As Integer
        Get
            Return p_cant_Lados
        End Get
        Set(ByVal value As Integer)
            p_cant_Lados = value
        End Set
    End Property

    Public MustOverride Function obtenerPerimetro()
    Public MustOverride Function cargarLados()

End Class

Public Class Triangulo
    Inherits Poligono

    Private lado1 As Integer
    Private lado2 As Integer
    Private lado3 As Integer

    Public Function cargarLados() As Object
        Return 1
    End Function

    Public Function obtenerPerimetro() As Object
        Return 1
    End Function

End Class

エラー 2 'Triangulo' はクラス 'Poligono' から継承できません。これは、アセンブリの外部の基本クラスのアクセスを拡張するためです。c:\users\win7\documents\visual studio 2013\Projects\WindowsApplication1\WindowsApplication1\Form1.vb 33 14 WindowsApplication1

ありがとう!

4

2 に答える 2

8

デフォルトでは、名前空間レベルで宣言されたクラスはFriendアクセス レベルを取得します。そうPoligonoですFriend Class。クラスを一般公開するFriendことはできません。

変化する

MustInherit Class Poligono

Public MustInherit Class Poligono
于 2013-11-04T21:07:45.803 に答える
3

2つのこと:

  1. 戻り値の型を追加する必要がありますAs

    Public MustOverride Function obtenerPerimetro() As Object
    Public MustOverride Function cargarLados() As Object
    
  2. Overrides抽象基本クラスをオーバーライドするメソッドに追加する必要があります

    Public Overrides Function cargarLados() As Object
        Return 1
    End Function
    
    Public Overrides Function obtenerPerimetro() As Object
        Return 1
    End Function
    
于 2013-11-04T21:10:43.117 に答える