-
一个关于C#方法重写的问题3
昨天开始看C#,看到有关方法重写的地方发现,如果类A的方法test以后有被重写的需要,
那么就要使用virtual关键字标识,如下:
public virtual void test( )
然后,类B继承类A,并重写方法test的话,需要使用override关键字标识,如下:
public override void test( )
不知道为什么C#的设计者要做出这种限制,Java中就没有这种要求。
假设某个项目用了第三方的类库(假设该类库闭源),发现类库中某个类的某个方法功能需要扩展,
难道还要通知该类的作者,让他在相应方法的前面加上virtual关键字?
感觉这完全就是一种多余的限制,只会增加语法的复杂性。
不知谁有关于这种限制的好的解释。2009年4月22日 13:20
相关推荐
C#重写MessageBox对话框C#重写MessageBox对话框C#重写MessageBox对话框C#重写MessageBox对话框C#重写MessageBox对话框C#重写MessageBox对话框C#重写MessageBox对话框
IIS URL重写模块是一个可下载的扩展,可以直接在IIS服务器上安装。在C#中,我们可以在web.config配置文件中编写重写规则。例如,以下规则将`/oldpage.aspx`重定向到`/newpage`: ```xml ^oldpage\.aspx$" /...
1. **自定义控件的外观**:在C#中,可以创建一个继承自TabControl的类,然后覆盖OnPaint方法。在这个方法里,你可以使用Graphics对象绘制自己的控件样式,例如改变选中标签的颜色、形状、边框等。同时,可以利用...
在C#中,为了能够重写一个方法,基类中的方法必须声明为`virtual`或`abstract`,而子类中相应的方法则需使用`override`关键字。例如: ```csharp public class BaseClass { public virtual void MyMethod() { ...
URL重写是一种机制,它允许开发人员将一个URL映射到另一个URL,而不会改变实际请求的资源。在ASP.NET中,这通常通过使用IIS(Internet Information Services)的URL重写模块或者Microsoft的`System.Web.Routing`类库...
通过以上步骤,我们成功地在C#中实现了按钮控件的重写,创建了一个具有独特外观和行为的“漂亮”按钮。这样的自定义按钮可以根据项目需求进行各种定制,提升用户体验,同时使代码更具可维护性和可扩展性。
本文主要探讨了如何在C#中使用.NET框架自定义一个按钮控件(`XPButton`)。这种自定义不仅增强了控件的功能性和外观效果,还使得开发人员能够更灵活地根据项目需求调整控件的行为。下面将详细介绍`XPButton`的设计...
asp.net c# Url重写 实现二级域名 包含所有源代码 ...则顶级域名必须要支持泛域名解析 ...即要有*....这样你才可实现二级域名 为二级域名指定一个顶级域名只稍加修改即可 但此顶级域名必须要解析到网站所在的服务器
首先,`A Much Easier to Use ListView - CodeProject.mht`文件可能是一个关于改进ListView的代码项目文章,通常在CodeProject网站上,开发者会分享他们的代码实现和经验。这个文件可能包含了一种或多种对ListView...
### C# Equals 和 GetHashCode 方法重写 在C#编程中,`Equals` 和 `GetHashCode` 方法是非常重要的成员方法,它们对于确保对象的正确比较以及高效地存储和检索对象至关重要。这两个方法通常需要在自定义类中进行...
C#重写SplitContainer收缩自定义控件
ASP.NET C# URL重写是Web开发中的一个重要概念,它涉及到网站的地址结构优化和搜索引擎友好性提升。在本文中,我们将深入探讨URL重写、地址重写、伪静态以及如何将ASP.NET C#应用程序中的动态页面转换为HTML,以提高...
C# 重写DEV10.0的treeView控件为组件实现全选反选和鼠标设置,组建可以引用直接用,已经开发源代码也可以根据自己需求再加功能,实现开发者快速开发,只要调用一个方法就可以。注意要安装DEV10或引用DEV控件。我把...
XLua是Unity3D中常用的一个Lua脚本绑定框架,它允许开发者使用Lua语言来编写部分游戏逻辑,从而提高开发效率并实现热更新功能。本文将深入探讨如何基于XLua在Unity3D中实现热更新,尤其是重写C#代码的部分。 首先,...
在C#编程中,`HashTable`是一个非泛型集合类,它在.NET Framework早期版本中被广泛使用。然而,随着.NET Framework的不断发展,`HashTable`逐渐被更安全、类型安全且性能更高的`Dictionary, TValue>`所取代。尽管...
首先,重写(Override)是面向对象编程的一个关键特性,它允许子类重新定义或实现父类的方法。在C#中,我们使用`override`关键字来重写基类的方法,以便在派生类中提供不同的实现。例如: ```csharp public class ...
在本文中,我们将深入探讨如何使用C#编程语言来实现一个仿QQ的窗体外观,这是一个结合了GDI+技术的项目。GDI+(Graphics Device Interface Plus)是.NET Framework中用于图形绘制的一个强大库,它允许开发者创建复杂...
Windows自带的消息框比较丑,特别是转到WIN7下更加,项目中用到的消息框非常多,基本上有提示信息、错误信息、询问信息这三种,从美观角度,MessageBox.show()这个方法出来的消息框有点不尽人意,于是自己写了一个,...
C#,Winform TabControl重写(添加关闭与添加按钮鼠标移动变色功能),可自定义添加按钮及样式
本文为您介绍C#中方法的重写的文章,具体方法请看介绍 问题一:什么是重写? “重写”父类方法是修改它的实现方式或者说在子类中对它进行重新编写。 问题二:为什么要重写父类的方法? 通常,子类继承...