1
public class A
2
{
3
public void test()
4
{
5
MessageBox.Show("I am A!");
6
}
7
public A()
8
{
9
10
}
11
}
12
13
public class B : A
14
{
15
public new void test()
16
{
17
MessageBox.Show("I am B!");
18
}
19
public B()
20
{ }
21
}
22
public class A2
{3
public void test()4
{5
MessageBox.Show("I am A!");6
}7
public A()8
{9
10
}11
}12

13
public class B : A14
{15
public new void test()16
{17
MessageBox.Show("I am B!");18
}19
public B()20
{ }21
}22

A testa = new B();
testa.test();调用的是A的方法
这里对象实例化的过程是从父类开始的过程,在实例化的过程中A被先实例化了,调用方法时自然调用的A的test方法
B类中使用New关键字对A隐藏了test方法,在B中调用test方法时,将自动调用新的test实现.

浙公网安备 33010602011771号