で別のOOPの質問今、私は次のことを願っていますが可能です...私はそれはので、ここで行く完全かどうか分からないが、Asp.net
以下は私が望んでいるものの設定が可能です(VB.netで、C#でお答えすること自由に感じ、私はそれをうまくすることができるはずです):
Public Class A
Private _name As String
Private _s As SearchA
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal Value As String)
_name = Value
End Set
End Property
Public Property S() As SearchA
Get
Return _s
End Get
Set(ByVal Value As SearchA)
_s = Value
End Set
End Property
Public Sub New(ByVal name As String)
_name = name
_s = New SearchA()
End Sub
Public Function GetSearch() As String
Return _s.Search
End Sub
End Class
と
Public Class SearchA
Private _search As String
Public Property Search() As String
Get
Return _search
End Get
Set(ByVal Value As String
_search = Value
End Set
End Property
Public Sub New()
_search = "Search using Base"
End Sub
End Class
と
Public Class B
Inherits A
Private Shadows _s As SearchB
Public Shadows Property S() As SearchB
Get
Return _s
End Get
Set(ByVal Value As SearchB)
_s = Value
End Set
End Property
Public Sub New(ByVal name As String)
Mybase.New(name)
_s = New SearchB()
End Sub
End Class
し、最終的に
Public Class SearchB
Inherits SearchA
Private _superSearch As String
Public Property SuperSearch () As String
Get
Return _superSearch
End Get
Set(ByVal Value As String
_superSearch = Value
End Set
End Property
Public Sub New()
Mybase.New()
_search = "Search using New"
_superSearch = "With more options..."
End Sub
End Class
、ここでは、使用です:
Dim oB As New B("hello")
Response.Write(oB.GetSearch())
任意のアイデア、私は影がうまくいくかもしれないと思ったし、印刷は「新しいを使用して検索する」が、それはしないのですか?プロパティーには基本クラスのプロパティとは異なる戻り型があるため、オーバーライドできません。 基本クラス内に、各子クラス内でオーバーライドするための を持たないコア関数のセットを定義します。それともこれはあまり意味がないのでしょうか?
ありがとうございました!
スティーブは
EDIT物事を置くために:クラスBのSプロパティで設定が –
@stibstibstib「SEARCHBとしての価値」を言う必要があります:あなたは、あなたの質問を編集することができます。これらのコメントのすぐ上に少し "編集"リンクがあります。 – Welbog
ああ、それはかなり小さいですね。私は今、それを使用します、ありがとう。 –