构造函数
1、私有构造函数,防止Singleton实例化
public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
2、构造函数base,this

class BaseClass { private int numA; public BaseClass() { Console.WriteLine("基类的无参数构造函数.value:{0}",numA); } public BaseClass(int i) { this.numA = i; Console.WriteLine("基类带一个参数的构造函数.value:{0}",numA); } } class ChildClassB : BaseClass { private int numB; public ChildClassB() { Console.WriteLine("子类无参数构造函数.value:{0}",numB); } public ChildClassB(int i):base() { this.numB = i; Console.WriteLine("子类带有一个参数的构造.value:{0}",numB); } public ChildClassB(int i,int j) : base(i) { this.numB = j; Console.WriteLine("子类带有两个参数的构造函数.value:{0}",numB); } } class ChildClassC : BaseClass { private int numC; public ChildClassC() { Console.WriteLine("子类无参数构造函数.value:{0}",numC); } public ChildClassC(int i)//:this() { this.numC = i; Console.WriteLine("子类带有一个参数的构造函数.value:{0}",numC); } public ChildClassC(int i,int j) : this(i) { this.numC = j; Console.WriteLine("子类带有两个参数的构造函数.value:{0}",numC); } }
Console.WriteLine("使用base\n"); ChildClassB b1 = new ChildClassB(3); ChildClassB b2 = new ChildClassB(2,4); Console.WriteLine("---------------"); Console.WriteLine("使用this\n"); ChildClassC c = new ChildClassC(2,4); Console.ReadKey();
this只是调用本身,但是这样是需要调用一次基类没有参数的构造函数
base是调用基类的构造函数

浙公网安备 33010602011771号