我已经制作了一个基类节点,其中包含添加和删除子节点、处理父节点以及搜索祖先、后代等的方法。到目前为止一切都很好。
现在我想创建一个派生类型 TreeNode :受益于所有这些节点功能的节点,但同时限制子节点和父节点具有相同的 TreeNode 类型。就像现在一样,我仍然将 Node 作为子级和父级的类型。
我可以以某种方式更改 Node 类的属性和方法参数类型以匹配派生类的类型,而无需手动覆盖或“新建”吗?
class Node
{
public TypeOfThisInstance Parent { get; }
}
class TreeNode : Node
{
}
TreeNode.Parent
现在应该是 aTreeNode
而不是 a Node
。