.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  ,如需转载请自行联系原作者


相关文章
|
4月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
926 2
|
4月前
|
人工智能 API 数据库
Semantic Kernel .NET 架构学习指南
本指南系统解析微软Semantic Kernel .NET架构,涵盖核心组件、设计模式与源码结构,结合实战路径与调试技巧,助你从入门到贡献开源,掌握AI编排开发全栈技能。
419 2
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
595 0
|
SQL 缓存 开发框架
分享一个 .NET EF6 应用二级缓存提高性能的方法
分享一个 .NET EF6 应用二级缓存提高性能的方法
209 0
学习计算机组成原理(王道考研)------第十一天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
|
开发框架 缓存 算法
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
848 0
|
机器学习/深度学习 PyTorch 算法框架/工具
【文献学习】Phase-Aware Speech Enhancement with Deep Complex U-Net
文章介绍了Deep Complex U-Net模型,用于复数值的语音增强,提出了新的极坐标掩码方法和wSDR损失函数,并通过多种评估指标验证了其性能。
298 1
|
算法 API 数据安全/隐私保护
.NET使用原生方法实现文件压缩和解压
.NET使用原生方法实现文件压缩和解压
175 0
.NET使用原生方法实现文件压缩和解压
|
程序员 数据库
分享 2 个 .NET EF 6 只更新某些字段的方法
分享 2 个 .NET EF 6 只更新某些字段的方法
367 0