首页 > 代码库 > 继承(子类构造执行的过程)

继承(子类构造执行的过程)

继承中子类构造的执行过程:
        1.从Main函数跳转到子类有参构造,但是不进入方法体,无论有无base(),都会跳转到父类构造
        2.跳转到父类有参构造,执行构造体
        3.执行完后,跳回到子类有参构造并执行构造体
        4.执行完后,跳回到Main函数,对象执行完毕

示例代码:

/// <summary>
    /// 父类
    /// </summary>
    public class Car
    {
        public string Brand { get; set; } //品牌
        public string Color { get; set; }  //颜色
        /// <summary>
        /// 无参构造
        /// </summary>
        public Car()
        {
        }
        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="brand"></param>
        /// <param name="color"></param>
        public Car(string brand,string color)
        {
            this.Brand = brand;
            this.Color = color;
        }

 

 /// <summary>
    /// 子类
    /// </summary>
   public class LittleCar:Car
    {
        public int Price { get; set; }
        public LittleCar()
        {

        }
        public LittleCar(string brand, string color, int price):base(brand,color)
        {
            //this.Brand = brand;
            //this.Color = color;
            this.Price = price;
        }
    }

 

 /// <summary>
        /// Main方法
        /// </summary>
        /// <param name="args"></param>
     public   static void Main(string[] args)
        {
          LittleCar littlecar = new LittleCar("路虎","灰色",5000);
          LittleCar littlecar2 = new LittleCar("路虎", "蓝色", 500000);
        }

继承(子类构造执行的过程)