我们可以在类中声明密封方法吗

2023-11-30

class X {
    sealed protected virtual void F() {
        Console.WriteLine("X.F");
    }
    sealed void F1();
    protected virtual void F2() {
        Console.WriteLine("X.F2");
    }
}

在上面的代码中存在编译时错误:

X.F()' 无法密封,因为它不是覆盖

X.F1()' 无法密封,因为它不是覆盖

这是否意味着我们只能应用sealed关键字 为什么我们必须重写一些方法?


Well, sealed关键字阻止方法被被覆盖,这就是为什么它没有意义

  1. with virtual声明 - 只需删除virtual而不是声明virtual sealed.
  2. on abstract方法,因为抽象方法必须被重写
  3. on 非虚拟的方法,因为这些方法不能被重写

所以唯一的选择是override sealed意思是覆盖,但最后一次:

public class A {
  public virtual void SomeMethod() {;}

  public virtual void SomeOtherMethod() {;}
}

public class B: A {
  // Do not override this method any more
  public override sealed void SomeMethod() {;}

  public override void SomeOtherMethod() {;}
}

public class C: B {
  // You can't override SomeMethod, since it declared as "sealed" in the base class
  // public override void SomeMethod() {;}

  // But you can override SomeOtherMethod() if you want
  public override void SomeOtherMethod() {;}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们可以在类中声明密封方法吗 的相关文章

  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • UIImageView 在自定义 UICollectionViewCell 中返回 nil

    上周我问了一个类似的问题 但我想我已经将问题范围缩小到更具体地出了什么问题 正在加载自定义单元格 并且当我使用时看起来可以正确调用collectionView dequeReusableCellWithIdentifier MenuCell
  • 如何让 git 理解 Mac (CR) 行结尾

    由于某些原因 我的一个文件包含旧式 Mac 行结尾 在 OSX 上编辑后 这些是 CR 回车 字符 在中显示为 Mgit diff Git 不理解它们是行结束代码 真的有多难 并将整个文件解释为一行 我知道我可以将文件转换为 LF 或 CR
  • 即使设备已准备好, navigator.connection.type 也无法工作*或*设备从未准备好

    我正在尝试使用 Phonegap 制作一个简单的应用程序 并使用 Adob e Phonegap builder 进行编译 我找到并使用了下面详细记录的使用 navigator connection type 的示例 并在其中添加了另一行
  • 触摸设备上的悬停事件

    我降低了不透明度 ul 当鼠标悬停在 ul 标记区域 然后设置完全不透明度 li 哪个用户在上面 像这个样本 在没有 jQuery 的情况下悬停时图像更改不透明度 现在 问题出在平板电脑和手机上 因为在触摸设备上我们没有悬停事件 用户应该单
  • 将具有不同日期格式的 CSV 导入 MySQL

    我正在将 CSV 第一次导入 MySQL 并注意到 CSV 中的日期具有以下格式31 Jan 2011 我怎样才能将其转换为2011 01 31所以我可以将它放在 DATE 数据类型中吗 我想到的第一件事是让 PHP 进行转换 然后将其插入
  • Appium:无法在连接的多个 Android 设备中运行脚本

    创建了多个 appium 实例 从控制台我运行 node p 4722 U Z K chromedriver port 9 515 bp 2251 node p 4723 U T K chromedriver port 9 516 bp 2
  • 如何在Excel中使用条件将数据从sheet1复制到sheet2

    在Excel工作簿中 我试图使用条件IF Sheet1 B2 B80 Sheet2 A2 A80 Sheet2 D2 将数据从sheet1复制到sheet2 我没有得到结果 请帮我解决这个问题 我正在尝试从sheet1复制到sheet2 条
  • 将 cv::Mat 复制到另一个 ROI 内

    我需要复制一个cv Mat图像 源 到另一个 目标 的 ROIcv Mat image I found 这个参考 但似乎它不适用于我的情况 您是否有任何指示我如何使用 OpenCV C 接口来做到这一点 OpenCV 2 4 src cop
  • R、rbind 具有由变量定义的多个文件

    首先 这与 Coursera R 编程课程的作业问题有关 我已经找到了其他方法来做我想做的事情 但我的研究让我发现了一个我很好奇的问题 我有数量可变的 csv 文件 需要从中提取数据 然后取所述文件中 污染物 列的平均值 这些文件在其目录中
  • 如果我们无法绑定MouseBinding的Command,我们该怎么办?

    我希望能够使用常规的MouseBinding捕获我的 CTRL Click 事件TextBlock 不幸的是Commandproperty 不是依赖属性 而且我正在使用 MVVM 所以我无法将它绑定到我的视图模型 微软怎么会忽略这个基本功能
  • 使用“near”作为变量名时出现编译器错误

    我的代码中出现了一个非常奇怪的错误 我用 C 创建了这个类 class Tester float f Tester float float 我是这样实现的 Tester Tester float near float a this gt f
  • 为什么 C++ 中从 stdin 读取行的速度比 Python 慢得多?

    我想比较使用 Python 和 C 读取来自 stdin 的字符串输入行 并惊讶地发现我的 C 代码运行速度比等效的 Python 代码慢一个数量级 由于我的 C 很生疏 而且我还不是专家 Pythonista 请告诉我我是否做错了什么或者
  • Gradle CreateDebugCoverageReport 不运行本地单元测试

    我正在使用 jacoco 进行代码覆盖 它运行 gradlew createDebugCoverageReport 很好并生成所有的代码覆盖率androidTest案例 但是 它不运行本地单元测试 因此不计算这些测试的代码覆盖率 我怎样才能
  • 在输出中打印 Python 版本

    如何从脚本中打印当前 Python 安装的版本号 Try import sys print sys version 这将打印完整的版本信息字符串 如果你只想要 python 版本号 那么巴斯蒂安 莱昂纳德的解决方案是最好的 您可能想要检查整
  • 正确安装 Android SDK、ADT 和 Eclipse 3.6.1

    按照 Eclipse 3 6 1 Classic 和 Android SDK 发布的说明 ADT 其中 OS 2 3 是最新的 错过了几个步骤 在 Eclipse 中加载 ADT 之前 一切似乎都正常 在此之前 将以下依赖项站点添加到列表中
  • 如何在 Metro/WinRT 中将主机名解析为 IP 地址?

    我正在将 WP7 应用程序移植到 Windows 8 Metro 我遇到的 许多 转换障碍之一是根据主机名或 DNS 名称发现 IP 地址 以下是我之前在WP7中使用的示例 DnsEndPoint dnsEnd new DnsEndPoin
  • xcode sqlite3 libsqlite.dylib

    我的项目出现了错误 但我不知道问题出在哪里 这是我编译后的错误 ld警告 在 install Platforms iPhoneSimulator platform Developer SDKs iPhoneSimulator3 0 sdk
  • 为什么我的 requirejs 配置中的 shim 的 `unit` 没有被调用?

    Update 我正在编写一个小模块来处理这个 csrf 令牌问题backbone直到我收到 Louis 答案的推送通知 他的回答很优雅 看起来不错 但我会离开a link to my 主干 csrfmodule github repo 仅供
  • Homebrew:安装新公式 php72-imagick

    我需要在我的 php 7 2 上安装 imagick 模块 I see brew search php72 gt Searching local taps gt Searching taps on GitHub gt Searching b
  • 我们可以在类中声明密封方法吗

    class X sealed protected virtual void F Console WriteLine X F sealed void F1 protected virtual void F2 Console WriteLine