呼叫基類建構函式
在執行派生類的建構函式之前呼叫基類的建構函式。例如,如果 Mammal
擴充套件 Animal
,則在建立 Mammal
的例項時首先呼叫 Animal
的建構函式中包含的程式碼。
如果派生類沒有顯式指定應該呼叫基類的哪個建構函式,則編譯器將採用無引數建構函式。
public class Animal
{
public Animal() { Console.WriteLine("An unknown animal gets born."); }
public Animal(string name) { Console.WriteLine(name + " gets born"); }
}
public class Mammal : Animal
{
public Mammal(string name)
{
Console.WriteLine(name + " is a mammal.");
}
}
在這種情況下,將列印通過呼叫 new Mammal("George the Cat")
例項化 Mammal
一個未知的動物出生了。
喬治貓是一種哺乳動物。
呼叫基類的不同建構函式是通過在建構函式的簽名和它的主體之間放置: base(args)
來完成的:
public class Mammal : Animal
{
public Mammal(string name) : base(name)
{
Console.WriteLine(name + " is a mammal.");
}
}
現在列印 new Mammal("George the Cat")
將列印:
喬治貓出生了。
喬治貓是一種哺乳動物。