C#⼦类构造函数base的⽤法
⼦类继承基类,⽣成实例时,会先跑基类的构造函数,再跑⼦类的构造函数
class Program
{
public static void Main(string[] args)
{
ClassA clsA = new ClassA();
Console.ReadKey();
}
}
public class Base
{
public Base()
{
Console.WriteLine("Base");
}
}
public class ClassA : Base
{
writeline函数public ClassA()
{
Console.WriteLine("ClassA");
}
}
结果如下:
然⽽在C#的类⾥,⼀个类的构造函数并不是只限⼀个。当基类有多个构造函数的时候可以使⽤base关键词给⼦类的构造函数选择⼀个基类的构造函数。当⼦类构造函数不写base的时候,默认为base(),直接继承基类的⽆参构造函数。
class Program
{
public static void Main(string[] args)
{
ClassA clsA = new ClassA();
Console.WriteLine();
ClassA clsA1 = new ClassA(1);
Console.WriteLine();
ClassA clsA2 = new ClassA(1,2);
Console.WriteLine();
ClassA clsA3 = new ClassA(1,"1");
Console.WriteLine();
ClassA clsA4 = new ClassA(1L);
Console.WriteLine();
ClassA clsA5 = new ClassA(1f);
Console.ReadKey();
}
}
public class Base
{
public Base()
{
Console.WriteLine("Base");
Console.WriteLine("Base");
}
public Base(int a)
{
Console.WriteLine("Base int a");
}
public Base(string a)
{
Console.WriteLine("Base string a");
}
}
public class ClassA : Base
{
public ClassA()
{
Console.WriteLine("ClassA");
}
public ClassA(int a):base(a)
{
Console.WriteLine("ClassA int a");
}
public ClassA(int a, int b) : base(a)
{
Console.WriteLine("ClassA int a int b");
}
public ClassA(int a, string b) : base(b)
{
Console.WriteLine("ClassA int a string b");        }
public ClassA(long a) : base()
{
Console.WriteLine("ClassA long a");
}
public ClassA(float a)
{
Console.WriteLine("ClassA float a");
}
}
结果如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。