C# new和override的区别分析_实用技巧

   override是指“覆盖”,是指子类覆盖了父类的方法。子类的对象无法再访问父类中的该方法。new是指“隐藏”,是指子类隐藏了父类的方法,当然,通过一定的转换,可以在子类的对象中访问父类的方法。所以说C# new和override的区别是覆盖和隐藏

    以下是代码:

复制代码 代码如下:

<PRE class=csharp name="code">class Base 

public virtual void F1() 

Console.WriteLine("Base's virtual function F1"); 

public virtual void F2() 

Console.WriteLine("Base's virtual fucntion F2"); 


class Derived:Base 

public override void F1() 

Console.WriteLine("Derived's override function F1"); 

public new void F2() 

Console.WriteLine("Derived's new function F2"); 


class Program 

public static void Main(string[] args) 

Base b1 = new Derived(); 
//由于子类覆盖了父类的方法,因此这里调用的是子类的F1方法。也是OO中多态的体现 
b1.F1(); 
//由于在子类中用new隐藏了父类的方法,因此这里是调用了隐藏的父类方法 
b1.F2(); 

}

时间: 2024-09-26 19:33:58

C# new和override的区别分析_实用技巧的相关文章

asp.net中virtual和abstract的区别分析_实用技巧

本文实例分析了asp.net中virtual和abstract的区别,分享给大家供大家参考.具体分析如下: 一.Virtual方法(虚方法) virtual 关键字用于在基类中修饰方法.virtual的使用会有两种情况: 情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法.那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法. 情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法.那么在对派生类实例的调用中,该虚方法使用的是派生重写的方

ASP.NET笔记之 控件与母板的区别分析_实用技巧

1.ASP.NET的好坏处 CodeBehind:"前aspx后cs"的模式,(1.aspx(控件定义.html.css)控制页面长相,cs控制程序逻辑aspx就是模板引擎,不需要再去寻找第三方的模板引擎(2.aspx中调用cs的成员级别必须是protected或者public不能是private因为当前this执行的是当前的子类(通过反编译查看) 2. Literal: Mode属性,避免XSS攻击 TextBox:AutopostBack=true 焦点离开Textbox提交表单A

asp.net中Session缓存与Cache缓存的区别分析_实用技巧

其中Cookie是保存在客户端的一组数据,主要用来保存用户名等个人信息. Session则保存对话信息. Application则是保存在整个应用程序范围内的信息,相当于全局变量. Session用的比较多. Session缓存与Cache缓存的区别,可以参考如下的几点: 1.最大的区别是Cache提供缓存依赖来更新数据,而Session只能依靠定义的缓存时间来判断缓存数据是否有效. 2.即使应用程序终止,只要Cache.Add方法中定义的缓存时间未过期,下次开启应用程序时,缓存的数据依然存在.

asp.net中Request.QueryString与Request.Param的区别分析_实用技巧

request.params其实是一个集合,它依次包括request.querystring.request.form.request.cookies和request.servervariables. 如果要在两个页面传递数据的话,只能用request.querystring.request.form.request.cookies Request.Params 是在 QueryString.Form.Server Variable 以及 Cookies 找数据, 他首先在 QueryStrin

datalist,Repeater和Gridview的区别分析_实用技巧

griview优点:功能最强大,提供分页,编辑,删除,选择等等很多功能,使用最方便,直接拖拽到页面上,建立新的数据源,点几下鼠标就可以维护一个表的浏览.删除和修改了,而且是分页的哦.(增加我还没搞明白怎么能点几下鼠标就实现,如果您知道请告诉我.).而且因为模板已经定制好,想自己灵活控制,不太容易. 缺点:占用系统资源大,他的分页是把整个表的数据取出来,到gridview上分页的,因此如果数据量比较大的时候,速度非常非常慢.效率极低. datalist比较好控制样式..没有自带的分页..编辑等..

DataTable类Clone方法与Copy方法的区别分析_实用技巧

DataTable.Clone 方法:克隆 DataTable 的结构,包括所有 DataTable 架构和约束. DataTable.Copy 方法:复制该 DataTable 的结构和数据. 我们可以编写如下的程序,进行验证: 复制代码 代码如下:         static string connStr = "Server=.\\sqlexpress;Initial Catalog=hr;Integrated Security=True";         static voi

Web.config 和 App.config 的区别分析_实用技巧

web.config是web应用程序的配置文件,为web应用程序提供相关配置.在你开发的web程序中,你可以为每一个文件夹建立一个web.config.app.config是桌面应用程序的配置文件.在vs.net中创建一个桌面应用程序工程并添加了应用程序配置文件时,它会自动命名为<appname>.exe.config,并且自动与你的程序进行关联. 不管是web.config,还是app.config,你都可以使用下面的方法获取appsetting节的值: System.Configurati

.net中as和is之间的区别分析_实用技巧

1.as 用于在兼容的引用类型之间执行转换,as 运算符类似于强制转换操作:但是,如果转换不可行,as 会返回 null 而不是引发异常.更严格地说,这种形式的表达式:expression as type,等效于expression is type ? (type)expression : (type)null,只是 expression 只被计算一次.注意,as 运算符只执行引用转换和装箱转换.as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来执行 as操作符不

asp.net中Response.Redirect与Server.Transfer的区别分析_实用技巧

Server.Transfer方法把执行流程从当前的ASPX文件转到同一服务器上的另一个ASPX页面.调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流. 如果用Server.Transfer方法实现页面之间的导航,浏览器中的URL不会改变,因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面变换. Response.Redirect则是客户端第一次请求服务器返回状态代码302及