new & Override
1![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
using System;
2![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
using System.Collections.Generic;
3![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
using System.Text;
4![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
5![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
namespace ConsoleApplication1
6![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
{
7![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
class Program
8![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
{
9![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
10![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
static void Main(string[] args)
11![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
{
12![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
baseClass bc;
13![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
class1 ct1 = new class1();
14![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
15![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
class2 ct2 = new class2();
16![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
17![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
ct1.prinf();
18![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
bc = ct1;
19![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
bc.prinf();
20![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
21![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
Console.WriteLine("---------------------");
22![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
23![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
ct2.prinf();
24![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
bc = ct2;
25![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
bc.prinf();
26![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
27![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
}
28![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
}
29![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
30![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
public class baseClass
31![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
{
32![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
private int index = 0;
33![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
34![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
public virtual void prinf()
35![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
{
36![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
37![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
Console.WriteLine("这是基类虚方法" + index.ToString());
38![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
39![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
}
40![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
41![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
}
42![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
43![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
public class class1 : baseClass
44![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
{
45![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
private int index = 1;
46![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
47![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
public override void prinf()
48![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
{
49![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
50![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
Console.WriteLine("这是子类新的方法" + index.ToString());
51![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
52![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
}
53![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
54![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
}
55![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
56![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
public class class2 : baseClass
57![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
{
58![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
private int index = 2;
59![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
60![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
public new void prinf()
61![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
{
62![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
63![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
Console.WriteLine("这是子类新的方法" + index.ToString());
64![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
65![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
}
66![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
67![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
}
68![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
69![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
70![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
}
71![new Override - picacure - picacure的博客 new Override - picacure - picacure的博客]()
运行结果:
这是子类新的方法1
这是子类新的方法1
---------------------
这是子类新的方法2
这是基类虚方法0
如上
使用override重写printf方法,通过父类引用一样只能看到重写后的方法;
如果使用new隐藏printf方法,父类子类引用各自对应方法;
override重写虚方法,那么就只剩下重写以后的方法;
new隐藏基类的方法,那么基类的方法和当前类的方法同时存在只是被隐藏了;
真想弄些实际应用的例子,想好了补上.

2

3

4

5

6



7

8



9

10

11



12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31



32

33

34

35



36

37

38

39

40

41

42

43

44



45

46

47

48



49

50

51

52

53

54

55

56

57



58

59

60

61



62

63

64

65

66

67

68

69

70

71

运行结果:
这是子类新的方法
这是子类新的方法
---------------------
这是子类新的方法2
如上
使用override
如果使用new隐藏printf方法,父类子类引用各自对应方法;
override重写虚方法,那么就只剩下重写以后的方法;
new隐藏基类的方法,那么基类的方法和当前类的方法同时存在只是被隐藏了;
真想弄些实际应用的例子,想好了补上.

浙公网安备 33010602011771号