关于构造函数


构造函数的做用是根据参数不一样来建立一个不一样的实例对象,如今我想介绍一下实例对象的过程,咱们都知道若是没有说明继承那个类,那么一个类默认继承的是System.Object类。因此若是是一个指明了继承哪一个类,那么至少它继承两个类。函数

如今开始介绍构造函数,构造函数是没有返回类型的啊,不知道这个你们知道不。主要仍是经过代码会更清楚吧,下面开工代码this

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    public class Write
    {
        public  Write()
        {Console.WriteLine("先执行");}//这个默认的状况下是省略的,如今为了明显期间 我就添上了,下同
    
    }

    public class ReWrite:Write
    {
        public  ReWrite()
        {Console.WriteLine("后执行"); }
    }

    class Program
    {
        static void Main(string[] args)
        {
            ReWrite rw = new ReWrite(i, j);
            Console.ReadKey(); 
        }
    }
}

这个的执行过程是System.Object方法,Write方法,ReWrite方法。不管是否有继承存在 Object是必须执行的 并且是先执行的。若是不行的话 咱们能够在每一个函数中添加一个Console.WriteLine("******");主要就能看出那个先执行了。spa

其实我想介绍的重点不是这个是下面一个。请看代码code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    public class Write
    {
        public Write()
        { }
        public Write(int i)
        {
            Console.WriteLine("{0}", i);
        }
        public Write(int i, int j)
        {
            Console.WriteLine("{0}和{1}", i, j);
        }

    }

    public class ReWrite : Write
    {
        public ReWrite()
        { }
        public ReWrite(int i)
        {
            Console.WriteLine("{0}", i);
        }
        public ReWrite(int i, int j)//{replace}
        {
            Console.WriteLine("{0}和{1}", i, j);

        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            int i = 3, j = 4;
            ReWrite rw = new ReWrite(i, j);
            Console.ReadKey();
        }
    }
}

这个执行顺序你们应该很明白了,是先执行object方法,而后执行Write()方法。最后执行ReWrite(i, j);方法。可是若是我想执行Write(i)方法怎么办呢 其实很简单对象

只须要把//{replace}改为base(i)或this(1)就OK了
继承

具体base和this的用法在下一篇提到;
相关文章
相关标签/搜索