派生类的继承方式是否不同?

发布于 2024-08-18 07:44:31 字数 403 浏览 11 评论 0原文

System.Web.UI.WebControls.UI.TableHeaderCell

派生自

System.Web.UI.WebControls.UI.TableCell

So 具有签名 foo(TableCell tc){} 的方法

将接受 TableHeaderCell 的实例。

但是,如果我创建两个新类,一个从 TableCell 派生,另一个从 TableHeaderCell 派生,那么我的新 TableHeaderCell 类显然无法转换为我的新 TableCell 类,因为它们没有直接关系。

有办法解决这个问题吗?我猜不会。

System.Web.UI.WebControls.UI.TableHeaderCell

derives from

System.Web.UI.WebControls.UI.TableCell

So a method with the signature foo(TableCell tc){}

Will accept instances of TableHeaderCell.

However if i create two new classes and derive one from TableCell and the other from TableHeaderCell then my new TableHeaderCell class will obviously not be able to cast into my new TableCell class as they are not directly related.

Is there anyway to get around this? Im guessing no.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

二货你真萌 2024-08-25 07:44:31

你是说这样的等级制度吗?

                  TableCell
                 /         \
                /           \
        TableHeaderCell   CustomTableCell
              /
             /                
  CustomTableHeaderCell

不可以,在这种情况下,您无法将 CustomTableHeaderCell 转换为 CustomTableCell

你确定在这种情况下你真的需要继承吗?你能用组合来代替吗?或者您可以让 CustomTableCellCustomTableHeaderCell 实现 ICustomCell 接口吗?如果您可以向我们提供有关您正在尝试做什么的更多信息,那将会有所帮助。

You mean a hierarchy like this?

                  TableCell
                 /         \
                /           \
        TableHeaderCell   CustomTableCell
              /
             /                
  CustomTableHeaderCell

No, in that case you couldn't cast CustomTableHeaderCell to CustomTableCell.

Are you sure you really need inheritance in this case? Could you use composition instead? Or could you make CustomTableCell and CustomTableHeaderCell implement an ICustomCell interface? If you could give us more information about what you're trying to do, that would help.

晚雾 2024-08-25 07:44:31

您可以继续将它们全部引用为 TableCell 对象,至少如果目标是能够调用您的 foo() 的话。

You could just keep referring to all of them as TableCell objects, at least if the goal is to be able to call your foo().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文