構造函數的做用是根據參數不一樣來建立一個不一樣的實例對象,如今我想介紹一下實例對象的過程,咱們都知道若是沒有說明繼承那個類,那麼一個類默認繼承的是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了
繼承