我已经制作了一个基类Node,其中包含添加和删除子项,处理父项以及搜索祖先,后代等的方法。到目前为止这么好。节点类模型
现在我想创建一个派生类型TreeNode:从所有这些节点功能中受益的节点,但同时限制子节点和父节点具有相同的TreeNode类型。因为它现在我仍然有孩子和父母的类型的节点。
我可以以某种方式使Node类的属性和方法参数类型更改为匹配派生类的类型,而无需手动重写或“新”?
class Node
{
public TypeOfThisInstance Parent { get; }
}
class TreeNode : Node
{
}
TreeNode.Parent
现在应该是一个TreeNode
而不是Node
。
为什么你甚至想这样做? 'TreeNode'与'Node'有什么不同? – svick 2012-04-22 14:00:55