C# 中“抽象覆盖”有什么用?

2023-11-30

出于好奇,我尝试重写基类中的抽象方法,并方法实现抽象。如下:

public abstract class FirstAbstract
{
    public abstract void SomeMethod();
}

public abstract class SecondAbstract : FirstAbstract
{
    public abstract override void SomeMethod();
    //?? what sense does this make? no implementaion would anyway force the derived classes to implement abstract method?
}

很想知道为什么 C# 编译器允许编写“抽象覆盖”。这不是多余的吗?执行此类操作应该是编译时错误。它适用于某些用例吗?

感谢您的关注。


有一个有用的例子微软文档- 基本上,您可以强制派生类为方法提供新的实现。

public class D
{
    public virtual void DoWork(int i)
    {
        // Original implementation.
    }
}

public abstract class E : D
{
    public abstract override void DoWork(int i);
}

public class F : E
{
    public override void DoWork(int i)
    {
        // New implementation.
    }
}

如果虚拟方法被声明为抽象方法,那么它对于任何方法仍然是虚拟的 类继承自抽象类。一个类继承一个 抽象方法无法访问其原始实现 方法—在前面的示例中,F 类上的 DoWork 无法调用 DoWork 在 D 类上。这样抽象类就可以强制派生类 为虚拟方法提供新的方法实现.

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

C# 中“抽象覆盖”有什么用? 的相关文章

  • 如何重写实体数据模型创建的对象上的 Equals?

    我创建了一个实体数据模型 它从 SQLite 数据库中提取记录 其中一个表是 People 我想重写 person Equals 方法 但我不确定去哪里进行这样的更改 因为 Person 对象是自动生成的 我什至看不到该 autogen 代
  • 使用可加载内核模块修改帧缓冲区(/dev/graphics/fb0)参数

    Problem 我必须配置 Android 平台使用的各种 LCD 显示器 几乎在所有情况下 都没有针对感兴趣的 LCD 显示器免费提供的电气规格 但通过经验和逆向工程 可以很好地猜测参数 我正在尝试使用可加载内核模块来微调显示参数 也欢迎
  • 我们可以在 C# 中定义枚举的隐式转换吗?

    是否可以在 C 中定义枚举的隐式转换 可以实现这一目标的东西吗 public enum MyEnum one 1 two 2 MyEnum number MyEnum one long i number 如果没有 为什么不呢 有一个解决方案
  • 如何将 CroppedBitmap 转换为 BitmapImage

    我正在尝试将 CroppedBitmap 转换为 BitmapImage 编辑 不使用内存流 我尝试过直接转换它 似乎这不是一个选择 这应该没那么难 我正在尝试剪切 BitmapImage 的一部分 并创建一个仅包含新裁剪的 Bitmap
  • 在异步方法中使用时 HttpClient 标头被清空

    我正在使用 NET Framework 4 6 1 我的 Web api 中有一个控制器 其中有静态 HttpClient 来处理所有 http 请求 在 IIS 上托管我的应用程序后 大约每月一次 我的应用程序的所有传入请求都会出现以下异
  • 如何处理作为参数传递到方法中的 Lambda 表达式 - C# .NET 3.5

    我对 Lambda 表达式的了解有点不稳定 虽然我可以编写使用 Lambda 表达式 又名 LINQ 的代码 但我正在尝试编写自己的方法 该方法采用一些 Lambda 表达式类型的参数 背景 我正在尝试编写一个方法 该方法从任何其他对象类型
  • VS2010中VSHost.exe不断启动

    我正在 VS2010 中使用一个包含大量项目的解决方案 但它不断变得无响应 我注意到的一件事可能是一条线索 尽管我尚未开始任何调试 但 MyApplicationName vshost exe 不断出现在进程列表中 也许每当构建发生时它就会
  • 如何在 C++ 中从模板基类的构造函数调用模板超类的构造函数?

    我正在使用 sublimetext3 用 c 进行编程 我的程序有一个名为 Array 的超类和一个名为 IntArray 的子类 这两个类都是模板类 目前 我在编译该程序时遇到问题 它不断在我的 IntArray cpp 文件中给出错误
  • 如何将 QSerialPort 模块添加到 CMake 中?

    我想将 QSerialPort 模块添加到 CMake 中 根据我的理解 我需要将QT 串口添加到 pro中 我只想使用 CMake 所以我尝试编译简单的 CMake 文件 但有错误 QtCore 正在工作 qDebug 可以毫无问题地显示
  • 测试从 ComboBox 派生的自定义控件

    我创建了一个从 ComboBox 派生的控件 并希望对其行为进行单元测试 但是 它在我的单元测试中的行为似乎与实际应用程序中的行为不同 在实际应用程序中 Combobox DataSource 属性和 Items 同步 换句话说 当我更改
  • WPF MVVM后台打印数据绑定问题

    我正在使用 wpf mvvm 开发一个销售点应用程序 在交易生命周期的许多阶段 都会在后台打印收据 我已经使用其他示例在后台生成和打印收据 我正在后台打印一个 UserControl 一切看起来都很棒 然后 我为该控件创建了 ViewMod
  • 剥离 OLE 标头信息 (MS Access / SQL Server)

    我有一个 C 应用程序需要支持二进制数据库内容 图像等 当使用 MS Access 或 MS SQL Server 时 此数据被包装在 OLE 对象内 如何去除此 OLE 标头信息 请注意 我不能只查找特定标签的开头 因为内容可以是 png
  • 为什么 ASP.Net MVC Range 属性采用类型?

    我只是想知道为什么范围验证属性可以采用类型和两个字符串作为参数 这是为了根据枚举或类似的东西验证字符串吗 另外 我想做的是找到一种简单的方法来验证必须出现在枚举中的 3 个字符的字符串 有什么建议吗 谢谢 亚历克斯 我确实发现你提到的 Ra
  • 合并大文件的最佳方法是什么?

    我必须合并数千个大文件 每个大约 200MB 我想知道合并这些文件的最佳方法是什么 行将有条件地复制到合并文件中 可以使用 File AppendAllLines 或使用 Stream CopyTo 吗 使用 File AppendAllL
  • 是否可以在 Eclipse 中为除 Java 之外的 Eclipse 编写插件?

    谁能帮我用c 写一个eclipse插件 weekens 和 celavek 感谢您提供的信息 我正在研究 JNI 并将尝试实现它 celavek 我们必须做什么样的主控 控制 在C 和java接口中处理是否风险更大 我的要求是在 Java
  • PC 上 XNA 中的信箱和缩放

    有没有一种方法可以让我基本上以 1080p 或 720p 作为默认分辨率来开发 XNA 游戏 然后根据设置的分辨率将游戏中的所有内容缩放到适当的大小 而不必在每个 Sprite 中设置缩放因子Draw 方法 我的想法是 我可以基于 1080
  • 64 位随机生成器种子

    我目前正在运行一个具有 8 个以上管道 线程 的多线程模拟应用程序 这些管道运行非常复杂的代码 该代码取决于种子生成的随机序列 然后该序列被归结为单个 0 1 我希望在将种子从主线程传递到处理管道后 这种 随机处理 具有 100 的确定性
  • 具有可导出私钥的证书的“错误密钥”例外

    我正在尝试使用非对称加密来加密然后解密文件 我已经使用 makecert 创建了一个测试证书并将其安装到我的个人本地计算机存储中 将来我必须在多个服务器上安装此证书 这就是为什么我使用 pe 标志创建它 即使用可导出的私钥 证书已成功创建并
  • 从不同的线程访问对象

    我有一个服务器类 它基本上等待来自客户端的连接 在该类中 我创建了一个 NetworkStream 对象 以便能够从客户端接收字节 由于 NetworkStream Read 方法不是异步的 这意味着它将等到从客户端读取字节才能继续执行类似
  • Json.net 将数字属性序列化为字符串

    我正在使用 JsonConvert SerializeObject 序列化模型对象 服务器期望所有字段都是字符串 我的模型对象具有数字属性和字符串属性 我无法向模型对象添加属性 有没有办法将所有属性值序列化为字符串 我必须只支持序列化 而不

随机推荐

  • 为什么回显 JSON 编码数组不会产生任何输出

    我有一个包含 19 个元素的小数据库 这是我用于检索数据库的 PHP 函数 function retrieveDB tempDB array database new mysqli DB HOST DB USER DB PASS DB NA
  • 如何使用 ng-repeat 进行展平

    I have businesses businessName A address loc1 loc2 loc3 businessName B address loc1 loc2 businessName C address loc1 我想用
  • 如何使用 jQuery 获取 CSS 属性的数字部分?

    我需要根据 CSS 属性进行数值计算 但是 当我用它来获取信息时 this css marginBottom 它返回值 10px 有没有一个技巧可以只获取值的数字部分 无论它是否是px or or em管他呢 parseInt this c
  • 在另一个类中使用 Swingworker 发布方法

    我有一个 Swingworker 这样我的 GUI 可以在我在后台工作时保持响应 问题是我需要在各个点更新 gui 例如 用程序状态 信息更新标签 但我有很多处理要做 但我无法在一个巨大的 doInBackground 方法中完成所有处理
  • Windows 上的 GeoDjango:“找不到 GDAL 库”/“OSError:[WinError 126] 找不到指定的模块”

    我一直在尝试设置我的 Windows 计算机 以便我可以拥有带有 PostGIS 扩展的本地 postgreSQL 安装后 我希望能够在将其放入云之前在本地使用 geodjango 创建一个项目 我已经在本地计算机上使用 SQLite DB
  • flutter 中的三个点(...) 意味着什么?

    什么是 这段代码的意思是 代码是 if state isSubmitting const SizedBox height 8 const LinearProgressIndicator value null In Dart 三点称为spre
  • 为什么未命名命名空间是静态命名空间的“高级”替代品? [复制]

    这个问题在这里已经有答案了 C 标准中的 7 3 1 1 2 部分内容如下 static关键字的使用是 在 a 中声明对象时已弃用 命名空间范围 未命名的命名空间 提供一个更好的选择 我不明白为什么未命名的命名空间被认为是更好的选择 理由是
  • 如何在 Asp.net 中打开带有预填充附件的默认邮件客户端

    我正在尝试打开默认邮件客户端带有 Asp net 中预填充的附件 如果我在本地服务器上尝试这个 它工作正常 但是当部署到服务器时 它就不再工作了 这就是我到目前为止所做的 public void SendEmail try int coun
  • 当弹出窗口被阻止时如何通过javascript打开新窗口

    当 IE 和 Firefox 中的弹出窗口被阻止时 如何通过 javascript 打开新窗口 下面是代码
  • 如何从 HTML 页面读取特定数字 [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 例如 如果我想从此页面设置索引值 http ca finance yahoo com q
  • 读取 PDF 文件中的日文字符

    我有以下命令 1010 TJ 我知道它在十六进制部分隐藏了日语 因为这是 PDF 中唯一的内容 并且这一行位于 pdf 文件中单个页面的唯一内容流中 问题是 无论我如何尝试解码这个十六进制字符串 我都会得到乱码 我已经将这些十六进制字符串解
  • ios电话号码格式

    在我的应用程序中 我将电话号码作为用户的输入 号码应采用美国格式 我想动态显示它 如 555 888 888 例如 当用户开始输入数字时 当他达到 4 位数字时 它会显示类似 555 4 等数字 我尝试了replaceString方法 但我
  • Spring Boot 2.3.1 在多租户环境中动态更新 Jdbc 模板架构

    我的项目位于 spring boot starter parent 1 5 9 RELEASE 我正在将其迁移到 spring boot starter parent 2 3 1 RELEASE 这是一种多租户环境应用程序 其中一个数据库将
  • Pandas Dataframe 中不同列的多重索引

    在我读完之后netCDF文件通过xray 我得到一只熊猫dataframe with a multiindex像这样 temp date lat lon 2012 01 01 54 10 206 11 207 55 10 210 11 21
  • SQL Azure BACPAC 提取

    如何以编程方式 C 从 SQL Azure 数据库中提取 BACPAC 文件 我正在考虑创建一个天蓝色的作业来提取这个 bacpack 文件 并在发生特定异常时将其保存到我的存储帐户 我试图获取 heinsenbug 和当时数据库的快照该活
  • Yii2 CORS 与 Auth 不适用于非 CRUD 操作

    我正在 Yii2 中构建 API 并添加了 CORS 和身份验证 这适用于所有创建 读取 更新 删除操作 但不适用于自定义操作 有谁之前经历过这个吗 网址管理器 class gt yii rest UrlRule controller gt
  • 如何使用 Jsoup 替换每个标签中的“文本”

    我有以下 html div p text strong text strong text em text em text p div 如何使用将每个标签中的 文本 替换为 单词 Jsoup图书馆 我想看看 div p word strong
  • 多色表奇偶 td

    我有一个用 CSS 设计的表格 其中包含偶数和奇数 The td偶数 奇数 CSS 代码 table box tr nth child odd td background color ffffff odd table box tr nth
  • 在 Python 中集成值列表

    我有一个数据列表 代表加速度 为了简单起见 我们假设这个列表是 X 1 2 3 4 5 我想将此列表中的每个值集成两次 双重集成 以便我可以检索有关位置的信息 快速提醒 位置 速度 加速度是相关的 您可以通过两次求导来找到加速度 或者 如果
  • C# 中“抽象覆盖”有什么用?

    出于好奇 我尝试重写基类中的抽象方法 并方法实现抽象 如下 public abstract class FirstAbstract public abstract void SomeMethod public abstract class