1

私はVB.Netで働いています。

私はいくつかのXオブジェクトを持っています。それらのすべてが機能を持っている必要があるので、私はまたはYを選択する必要があります。また、オブジェクトごとにまったく同じ関数が必要です。この関数は、その種類のオブジェクトのプリントアウトなど、オブジェクトの抽象化/実装されたメソッドによってのみ使用されます。InterfaceMustInheritZ

これを行うための最良の方法は何ですか?

4

2 に答える 2

1

あなたの質問を本当に理解していません。適切な回答が必要な場合は、質問をより明確にすることをお勧めします。私が理解していることから、継承を使用して、同じ MustInherit クラスを継承し、異なる実装で同様のアクションを実行する 2 つ以上のオブジェクトを作成する方法を知りたいと考えています。X 関数と Z 関数の違いがわかりません。

Public MustInherit Class theBase
    Public MustOverride Sub ZPrint()
End Class

Public Class a
    Inherits theBase
    Public Overrides Sub ZPrint()
        ' the "a" way to print
    End Sub
End Class

Public Class b
    Inherits theBase
    Public Overrides Sub ZPrint()
        ' the "b" way to print
    End Sub
End Class

Public Class theClass
    Public Sub run()
        Dim myA As theBase
        Dim myB As theBase
        myA = New a
        myB = New b
        myA.ZPrint()
        myB.ZPrint()
    End Sub
End Class

theClass のインスタンスを作成し、run() メソッドを実行します。

于 2012-10-22T21:53:23.983 に答える
1

Y実装するが関数を必要としないクラスがあると予想される場合にのみ、インターフェイスを使用しますZ

すべてのサブクラスがZ関数を必要とする場合、抽象化を使用します。Zクラス内でのみ使用する場合は、そのようにマークしてProtected、サブクラスにのみ表示されるようにします。

MustInherit Class BaseX
    Public MustOverride Sub Y();

    Protected Sub Z()
        ' TODO: Implement common version of Z.
    End Sub
End Class

Class FirstX Inherits BaseX
    Public Overrides Sub Y()
        ' TODO: Implement first version of Y.
        ' Call Z() as required.
    End Sub
End Class

Class SecondX Inherits MyBaseClass
    Public Overrides Sub Y()
        ' TODO: Implement second version of Y.
        ' Call Z() as required.
    End Sub
End Class

注:私の VB が正しいことを願っています。インストールしていないため、構文を検証できません。

于 2012-10-22T23:29:59.757 に答える