本篇體驗私有構造函數的特色,以及在何種狀況下使用私有構造函數。函數
□ 帶私有構造函數的類不能被繼承spa
在Animal類中聲明一個私有構造函數,讓Dog類來繼承Animal類。
blog
public class Animal{private Animal()
{Console.WriteLine("i am animal");
}}public class Dog : Animal{}
□ 帶私有構造函數的類不能被實例化路由
class Program
{static void Main(string[] args){Animal animal = new Animal();
}}public class Animal{private Animal()
{Console.WriteLine("i am animal");
}}
□ 私有構造函數的應用string
有些時候,咱們不但願一個類被過多地被實例化,好比有關全局的類、路由類等。這時候,咱們能夠爲類設置構造函數並提供靜態方法。it
class Program
{static void Main(string[] args){string str = Animal.GetMsg();
Console.WriteLine(str);Console.ReadKey();}}public class Animal{private Animal()
{Console.WriteLine("i am animal");
}public static string GetMsg(){return "Hello World";}}
總結:一旦一個類被設置成私有構造函數,就不能被繼承,不能被實例化,這種狀況下,一般爲類提供靜態方法以供調用。class