.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
class Class12
{3
public void Method()4
{ 5
6
}7
}8
class Class2 : Class19
{10
public new void Method()11
{ 12
13
}14
}15

类Class2中的Method()方法会隐藏掉Class1的Method()。
重写:
其实引用下面代码即反射就能来看出方法的隐藏还是重写:
1
MemberInfo[] MI=typeof(Class2).GetMethods ();
2
foreach (MemberInfo mi in MI)
3
{
4
Console .WriteLine (mi.Name);
5
}
我们可以在上面的两种状态下来看一下结果,如下
MemberInfo[] MI=typeof(Class2).GetMethods ();2
foreach (MemberInfo mi in MI)3
{4
Console .WriteLine (mi.Name);5
}隐藏方法如下图:
重写的方法如下图:
可见隐藏后是两个Method方法,重写后是一个Method方法。
****欢迎关注我的asp.net core系统课程****
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524


浙公网安备 33010602011771号