首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >你能重写私有的虚方法吗?

你能重写私有的虚方法吗?
EN

Stack Overflow用户
提问于 2010-03-17 00:34:42
回答 3查看 21.5K关注 0票数 10

我认为你可以,而我的同事认为你不能!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-17 00:35:25

你甚至不能声明私有的虚方法。它唯一有意义的时候是如果你有:

代码语言:javascript
运行
复制
public class Outer
{
    private virtual void Foo() {}

    public class Nested : Outer
    {
        private override void Foo() {}
    }
}

..。这是类型可以访问其父类型的私有成员的唯一情况。但是,这仍然是被禁止的:

Test.cs(7,31):错误CS0621:'Outer.Nested.Foo()':虚拟或抽象成员不能是私有成员

Test.cs(3,26):错误CS0621:'Outer.Foo()':虚拟或抽象成员不能是私有

票数 55
EN

Stack Overflow用户

发布于 2010-03-17 00:36:51

你的同事是对的。你不能声明私有的虚方法,因为它没有意义(因为没有办法覆盖它们)……

但您可以覆盖受保护的虚拟方法。

票数 5
EN

Stack Overflow用户

发布于 2013-01-09 11:28:24

您将不会在派生类中为您的私有方法提供资金。因此,在这种情况下,virtual关键字没有sens。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2456222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档