.net知识和学习方法系列(四)继承中方法的隐藏和重写

简介:
最近在教学生时,学员老理解不清方法的隐藏和重写,后来想了想,终于能用反射能让学生明白这两者的区别!
看一下例子:
隐藏:
1        class Class1 
2        { 
3                public void Method() 
4                {    
5                 
6                } 
7        } 
8        class Class2 : Class1 
9        { 
10                public new void Method() 
11                {    
12                 
13                } 
14        } 
15
 
类Class2中的Method()方法会隐藏掉Class1的Method()。
重写:
方法的重写
类Class2中的Method()方法会隐藏掉Class1的Method()。
重写:
 
方法的重写 
1    class Class1 
2        { 
3                 public virtual    void Method() 
4                {    
5                 
6                } 
7        } 
8        class Class2 : Class1 
9        { 
10                 public override    void Method() 
11                {    
12                 
13                } 
14        } 
15
在上面的代码中,对于初学者可能理解不了什么是隐藏,什么是重写,因为在实例化这两个类后,调用它们的方法时,都只是Class2中Method()的方法在执行,怎么能看出来呢?
其实引用下面代码即反射就能来看出方法的隐藏还是重写:
1                     MemberInfo[] MI=typeof(Class2).GetMethods (); 
2                     foreach (MemberInfo mi  in MI) 
3                     { 
4                         Console .WriteLine (mi. Name); 
5                     }
我们可以在上面的两种状态下来看一下结果,如下
隐藏方法如下图:

重写的方法如下图:

可见隐藏后是两个Method方法,重写后是一个Method方法。



















本文转自桂素伟51CTO博客,原文链接:http://blog.51cto.com/axzxs/149995  ,如需转载请自行联系原作者


相关文章
|
6月前
|
API 网络安全 数据安全/隐私保护
.NET邮箱API发送邮件的方法有哪些
本文介绍了.NET开发中使用邮箱API发送邮件的方法,包括SmtpClient类发送邮件、MailMessage类创建邮件消息、设置SmtpClient属性、同步/异步发送、错误处理、发送HTML格式邮件、带附件邮件以及多人邮件。AokSend提供高触达发信服务,适用于大规模验证码发送场景。了解这些技巧有助于开发者实现高效、可靠的邮件功能。
|
3月前
|
SQL 缓存 开发框架
分享一个 .NET EF6 应用二级缓存提高性能的方法
分享一个 .NET EF6 应用二级缓存提高性能的方法
|
6月前
|
开发框架 .NET 中间件
C#/.NET快速上手学习资料集(让现在的自己不再迷茫)
C#/.NET快速上手学习资料集(让现在的自己不再迷茫)
184 8
|
28天前
|
开发框架 缓存 算法
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
学习计算机组成原理(王道考研)------第十一天https://zhengyz.blog.csdn.net/article/details/121706379?spm=1001.2014.3001.5502
这篇文章是关于计算机组成原理的王道考研学习笔记,主要介绍了半导体存储器RAM和ROM的相关知识。
学习计算机组成原理(王道考研)------第十一天https://zhengyz.blog.csdn.net/article/details/121706379?spm=1001.2014.3001.5502
|
3月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【文献学习】Phase-Aware Speech Enhancement with Deep Complex U-Net
文章介绍了Deep Complex U-Net模型,用于复数值的语音增强,提出了新的极坐标掩码方法和wSDR损失函数,并通过多种评估指标验证了其性能。
54 1
|
3月前
|
程序员 数据库
分享 2 个 .NET EF 6 只更新某些字段的方法
分享 2 个 .NET EF 6 只更新某些字段的方法
|
3月前
|
数据库
分享一个 .NET EF 6 扩展 Where 的方法
分享一个 .NET EF 6 扩展 Where 的方法
|
3月前
|
开发框架 前端开发 算法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
|
3月前
|
开发框架 中间件 .NET
分享 ASP.NET Core Web Api 中间件获取 Request Body 两个方法
分享 ASP.NET Core Web Api 中间件获取 Request Body 两个方法
107 0