1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace TestNewCreatNewMethod
6 {
7 class Program
8 {
9 static void Main(string[] args)
10 {
11 test1 t1=new test1();
12 test2 t2=new test2();
13 test3 t3=new test3();
14 t1.prinf();
15 t1.printf();
16
17 t2.prinf();
18 t2.printf();
19
20 t3.prinf();
21 t3.printf();
22 Console.ReadKey();
23 }
24 }
25
26 public abstract class book //抽象类中可以没有抽象方法,但抽象类不能被实例化,只能被继承,另外不能用sealed关键字,密封类不能被继承
27 {
28 public virtual void prinf()//虚方法用virtual关键字修饰
29 {
30 Console.WriteLine("this virtual method");
31 }
32 public void printf()
33 {
34 Console.WriteLine("this real method");
35 }
36 }
37
38 public abstract class book1
39 {
40 public virtual void prinf()
41 {
42 Console.WriteLine("this virtual method");
43 }
44 public abstract void printf();
45 }
46
47 public class test1:book
48 {
49 public new void prinf()//类中的virtual方法可以由override实现也可以用new关键字隐藏基类中的虚方法
50 {
51 base.prinf();
52 Console.WriteLine("book new method prinf");
53 }
54 public new void printf()//类中的实方法可以由new关键字隐藏基类中的虚方法
55 {
56 Console.WriteLine("book new method printf");
57 }
58 }
59
60 public class test2:book1
61 {
62 public override void prinf()//抽象类中的virtual方法可以由override实现也可以用new关键字隐藏基类中的虚方法
63 {
64 Console.WriteLine("book1 override method prinf");
65 base.prinf();
66 }
67 public override void printf()//抽象类中的抽象方法只能由override实现
68 {
69 Console.WriteLine("book1 override method printf");
70 }
71 }
72
73 public class test3:book1
74 {
75 public override void printf() //抽象类中的抽象方法只能由override实现
76 {
77 Console.WriteLine("book1 abstruct method printf");
78 }
79 }
80 }
81
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace TestNewCreatNewMethod
6 {
7 class Program
8 {
9 static void Main(string[] args)
10 {
11 test1 t1=new test1();
12 test2 t2=new test2();
13 test3 t3=new test3();
14 t1.prinf();
15 t1.printf();
16
17 t2.prinf();
18 t2.printf();
19
20 t3.prinf();
21 t3.printf();
22 Console.ReadKey();
23 }
24 }
25
26 public abstract class book //抽象类中可以没有抽象方法,但抽象类不能被实例化,只能被继承,另外不能用sealed关键字,密封类不能被继承
27 {
28 public virtual void prinf()//虚方法用virtual关键字修饰
29 {
30 Console.WriteLine("this virtual method");
31 }
32 public void printf()
33 {
34 Console.WriteLine("this real method");
35 }
36 }
37
38 public abstract class book1
39 {
40 public virtual void prinf()
41 {
42 Console.WriteLine("this virtual method");
43 }
44 public abstract void printf();
45 }
46
47 public class test1:book
48 {
49 public new void prinf()//类中的virtual方法可以由override实现也可以用new关键字隐藏基类中的虚方法
50 {
51 base.prinf();
52 Console.WriteLine("book new method prinf");
53 }
54 public new void printf()//类中的实方法可以由new关键字隐藏基类中的虚方法
55 {
56 Console.WriteLine("book new method printf");
57 }
58 }
59
60 public class test2:book1
61 {
62 public override void prinf()//抽象类中的virtual方法可以由override实现也可以用new关键字隐藏基类中的虚方法
63 {
64 Console.WriteLine("book1 override method prinf");
65 base.prinf();
66 }
67 public override void printf()//抽象类中的抽象方法只能由override实现
68 {
69 Console.WriteLine("book1 override method printf");
70 }
71 }
72
73 public class test3:book1
74 {
75 public override void printf() //抽象类中的抽象方法只能由override实现
76 {
77 Console.WriteLine("book1 abstruct method printf");
78 }
79 }
80 }
81