代码
1 using System;
2
3 namespace Inheritance
4 {
5 //类型object是所有类的最基本类,下面的类A就是显示的从object派生出来的。
6 class A
7 {
8 public void F() { Console.WriteLine("A.F"); }
9 }
10 //下面的类B是从类A中派生出来的
11 class B : A
12 {
13 public void G() { Console.WriteLine("B.G"); }
14 }
15
16 /*方法和索引以及属性可以是虚拟的,这就意味着他们的执行可以在派生类中被覆盖。下面的Demo
17 就是一个具有虚拟方法F的类C以及一个覆盖了F的类D*/
18 class C
19 {
20 public C()
21 {
22 Console.WriteLine("这里是C类的构造函数");
23 }
24 public virtual void F()
25 {
26 Console.WriteLine("C.F");
27 }
28 }
29 class D : C
30 {
31 public D()
32 : base()//当实例化类D时,这里就会去调用D类的基类C中的构造函数
33 {
34
35 }
36 public override void F()
37 {
38 //在这里覆盖方法包括调用了base.F(),这里调用了C中的被覆盖方法!
39 //base关键字是用于从派生类中访问基类的成员,是指定创建派生类实例时英调用的基类的构造函数,这里是用于基类上被其他方法覆盖的方法
40 base.F();
41 Console.WriteLine("B.F");
42 }
43 }
44
45 //一个类可以表明他是被完全抽象的,且由于含有abstract修改函数,只是作为其他类的一个基类
46 //这样一个类被称为一个abstract class。抽象类可以指定非抽象派生类必须执行的成员
47 abstract class X
48 {
49 public abstract void Y();
50 }
51 class Z : X
52 {
53 public override void Y()
54 {
55 Console.WriteLine("Z.Y");
56 }
57 }
58 }
59
2
3 namespace Inheritance
4 {
5 //类型object是所有类的最基本类,下面的类A就是显示的从object派生出来的。
6 class A
7 {
8 public void F() { Console.WriteLine("A.F"); }
9 }
10 //下面的类B是从类A中派生出来的
11 class B : A
12 {
13 public void G() { Console.WriteLine("B.G"); }
14 }
15
16 /*方法和索引以及属性可以是虚拟的,这就意味着他们的执行可以在派生类中被覆盖。下面的Demo
17 就是一个具有虚拟方法F的类C以及一个覆盖了F的类D*/
18 class C
19 {
20 public C()
21 {
22 Console.WriteLine("这里是C类的构造函数");
23 }
24 public virtual void F()
25 {
26 Console.WriteLine("C.F");
27 }
28 }
29 class D : C
30 {
31 public D()
32 : base()//当实例化类D时,这里就会去调用D类的基类C中的构造函数
33 {
34
35 }
36 public override void F()
37 {
38 //在这里覆盖方法包括调用了base.F(),这里调用了C中的被覆盖方法!
39 //base关键字是用于从派生类中访问基类的成员,是指定创建派生类实例时英调用的基类的构造函数,这里是用于基类上被其他方法覆盖的方法
40 base.F();
41 Console.WriteLine("B.F");
42 }
43 }
44
45 //一个类可以表明他是被完全抽象的,且由于含有abstract修改函数,只是作为其他类的一个基类
46 //这样一个类被称为一个abstract class。抽象类可以指定非抽象派生类必须执行的成员
47 abstract class X
48 {
49 public abstract void Y();
50 }
51 class Z : X
52 {
53 public override void Y()
54 {
55 Console.WriteLine("Z.Y");
56 }
57 }
58 }
59
Let's Go
不可改变容颜,但可改变微笑;不可改变别人,但可把握自己;不可改变生命的长度,但可改变生命的宽度。
