私はVB.Netで働いています。
私はいくつかのX
オブジェクトを持っています。それらのすべてが機能を持っている必要があるので、私はまたはY
を選択する必要があります。また、オブジェクトごとにまったく同じ関数が必要です。この関数は、その種類のオブジェクトのプリントアウトなど、オブジェクトの抽象化/実装されたメソッドによってのみ使用されます。Interface
MustInherit
Z
これを行うための最良の方法は何ですか?
あなたの質問を本当に理解していません。適切な回答が必要な場合は、質問をより明確にすることをお勧めします。私が理解していることから、継承を使用して、同じ 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() メソッドを実行します。
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 が正しいことを願っています。インストールしていないため、構文を検証できません。