【发布时间】:2010-10-26 12:16:04
【问题描述】:
好吧,这是一个有点白痴的问题,但我今天遇到了这个问题,这让我有些困惑,为什么会这样。
考虑以下结构
Public Class Employee
Implements IPerson
Private _MyManager As Manager
Public Property MyManager() As Manager Implements IPerson.TheirLeader
Get
Return _MyManager
End Get
Set(ByVal value As Manager)
_MyManager = value
End Set
End Property
End Class
Public Class Manager
Implements IPerson, IAuthorityFigure
Private _MyBoss As Boss
Public Property MyBoss() As Boss Implements IPerson.TheirLeader
Get
Return _MyBoss
End Get
Set(ByVal value As Boss)
_MyBoss = value
End Set
End Property
End Class
Public Class Boss
Implements IPerson, IAuthorityFigure
'Implementation code here...
End Class
Public Interface IPerson
Property TheirLeader() As IAuthorityFigure
End Interface
Public Interface IAuthorityFigure
'Stuff here...
End Interface
这是我的问题:我想让每个人都实现 IPerson 接口,无论他们是员工、老板还是经理。但是,他们每个人都有一个指向其领导者的属性(员工有经理,经理有老板,等等)。除了他们实现 IAuthorityFigure 接口之外,他们的领导者的每个实现都可能不同。我想让 IPerson 接口有一个 IAuthorityFigure 的属性,但是当我实现这个 b/c 时它会为我抛出一个编译器错误,IAuthorityFigure 与 Boss 或 Manager 的类型不同(即使它们实现了接口)。
所以,我做错了什么,或者这是使用接口与抽象类的限制。如果这是一个限制,谁能解释为什么会这样?
谢谢!
【问题讨论】:
标签: vb.net inheritance interface