C#初始化顺序

using System;

namespace Test
{
    class Program
    {

        static void Main(string[] args)
        {

            Console.ReadLine();
        }
    }


    public class Base
    {
        private static Print p1 = new Print("1父类Base_静态变量");

        private Print p2 = new Print("1父类Base_变量");

        static Base()
        {
            Console.WriteLine("1父类Base_静态构造函数");
        }

        public Base()
        {
            Console.WriteLine("1父类Base_构造函数");
        }
    }


    public class Animal : Base
    {
        private static Print p1 = new Print("2子类Animal_静态变量");

        private Print p2 = new Print("2子类Animal_变量");

        static Animal()
        {
            Console.WriteLine("2子类Animal_静态构造函数");
        }

        public Animal()
        {
            Console.WriteLine("2子类Animal_构造函数");
        }
    }

    public class Dog : Animal
    {
        private static Print p1 = new Print("3子子类Dog_静态变量");

        private Print p2 = new Print("3子子类Dog_变量");

        static Dog()
        {
            Console.WriteLine("3子子类Dog_静态构造函数");
        }

        public Dog()
        {
            Console.WriteLine("3子子类Dog_构造函数");
        }
    }


    public class Print
    {
        public Print(string str)
        {
            Console.WriteLine(str);
        }
    }
}

 

class Program
{

    static void Main(string[] args)
    {
        Base b1 = new Base();

        Console.ReadLine();
    }
}


/*

1父类Base_静态变量
1父类Base_静态构造函数


1父类Base_变量
1父类Base_构造函数

*/

 

class Program
{

    static void Main(string[] args)
    {
        Base b2 = new Animal();

        Console.ReadLine();
    }
}

/*

2子类Animal_静态变量
2子类Animal_静态构造函数
2子类Animal_变量


1父类Base_静态变量
1父类Base_静态构造函数
1父类Base_变量


1父类Base_构造函数
2子类Animal_构造函数

*/

 

class Program
{

    static void Main(string[] args)
    {
        Base b3 = new Dog();

        Console.ReadLine();
    }
}

/*

3子子类Dog_静态变量
3子子类Dog_静态构造函数
3子子类Dog_变量


2子类Animal_静态变量
2子类Animal_静态构造函数
2子类Animal_变量


1父类Base_静态变量
1父类Base_静态构造函数
1父类Base_变量


1父类Base_构造函数
2子类Animal_构造函数
3子子类Dog_构造函数

*/

 

class Program
{

    static void Main(string[] args)
    {
        Animal a1 = new Animal();

        Console.ReadLine();
    }
}

/*

2子类Animal_静态变量
2子类Animal_静态构造函数
2子类Animal_变量


1父类Base_静态变量
1父类Base_静态构造函数
1父类Base_变量


1父类Base_构造函数
2子类Animal_构造函数

*/

 

class Program
{

    static void Main(string[] args)
    {
        Animal a2 = new Dog();

        Console.ReadLine();
    }
}

/*

3子子类Dog_静态变量
3子子类Dog_静态构造函数
3子子类Dog_变量


2子类Animal_静态变量
2子类Animal_静态构造函数
2子类Animal_变量


1父类Base_静态变量
1父类Base_静态构造函数
1父类Base_变量


1父类Base_构造函数
2子类Animal_构造函数
3子子类Dog_构造函数

*/

 

class Program
{

    static void Main(string[] args)
    {
        Dog d = new Dog();

        Console.ReadLine();
    }
}

/*

3子子类Dog_静态变量
3子子类Dog_静态构造函数
3子子类Dog_变量


2子类Animal_静态变量
2子类Animal_静态构造函数
2子类Animal_变量


1父类Base_静态变量
1父类Base_静态构造函数
1父类Base_变量


1父类Base_构造函数
2子类Animal_构造函数
3子子类Dog_构造函数

*/

 

posted @ 2018-05-03 00:57  茗::流  阅读(128)  评论(0)    收藏  举报
如有雷同,纯属参考。如有侵犯你的版权,请联系我。