1 /*
2 * Created by SharpDevelop.
3 * User: My little flower basket
4 * Date: 2013/7/11
5 * Time: 9:38
6 *
7 * 构造函数特性
8 * 不要构建两个相互调用的构造函数,这是错误的
9 */
10 using System;
11
12 namespace oop
13 {
14 public class MyBaseClass
15 {
16 public MyBaseClass()
17 {
18 Console.WriteLine("我是MyBaseClass 1");
19 }
20
21 public MyBaseClass(int i )
22 {
23 Console.WriteLine("我是MyBaseClass 2");
24 Console.WriteLine("我是MyBaseClass 2 我的值是:"+i);
25 }
26 }
27
28
29 public class MyDerivedClass : MyBaseClass//基类的可访问权限应该比子类要高
30 {
31 public MyDerivedClass() : this(5,6)//在使用指定的构造函数之前 先使用this
32 {
33 Console.WriteLine("MyDerivedClass 1");
34 }
35
36 public MyDerivedClass(int i)
37 {
38 Console.WriteLine("MyDerivedClass 2");
39 }
40
41 public MyDerivedClass(int i , int j):base(i)//这个i就是参数i的值
42 {
43 Console.WriteLine("MyDerivedClass 3 我是"+ i);
44 Console.WriteLine("MyDerivedClass 3 我是" + j);
45 Console.WriteLine("MyDerivedClass 3");
46
47 }
48 }
49
50
51 class Program
52 {
53 public static void Main(string[] args)
54 {
55
56 // MyDerivedClass myObj = new MyDerivedClass();//object ()-->MyBaseClass-->MyDerivedClass 构造函数
57
58 // MyDerivedClass myObj = new MyDerivedClass(4);//object()-->MyBaseClass-->MyDerivedClass(int i) 构造函数
59
60 // MyDerivedClass myObj = new MyDerivedClass(4);// object()-->MyBaseClass-->MyDerivedClass(int i , int j) 构造函数
61 // MyDerivedClass myObj = new MyDerivedClass(5,5);//object()-->MyBaseClass(int i)-->MyDerivedClass(int i , int j) 构造函数
62 MyDerivedClass myObj = new MyDerivedClass(); //添加this执行该代码 object()-->MybaseClass()-->MyDerivedClass(int i ,int j)-->MybaseClass() 构造函数
63
64
65 Console.Write("Press any key to continue . . . ");
66 Console.ReadKey(true);
67 }
68 }
69 }