类的构造函数(器)constructor

Posted 天梦Interact

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的构造函数(器)constructor相关的知识,希望对你有一定的参考价值。

九 类的构造函数 constructor

默认构造函数

每个类在建立和实例化为对象的时候都会首先调用默认的构造函数。

 

如图:

类中的变量,数字类型的默认赋值为0,字符类型的默认赋值为Null。

要与一般变量的初始值区分开:如下(编译不通过)

 

 

构造函数的重载和继承

using System ;
class A
{
    public int i;
    public string s;
    public A()     //修改默认的构造函数
    {
        i=100;
        s="石头";
    }
    public A(int i):this()  //重载构造函数并继承A();
    {
        this.i=i;
    }
    public A(string s):this()//重载构造函数并继承A();
    {
        this.s=s;
    }
    public A(int i,string s):this()//重载构造函数并继承A();
    {
        this.i=i;
        this.s=s;
    }
}
class Test
{
    static void Main()
    {
        A a=new A ();               //调用第一个构造函数
        Console.WriteLine("第一个构造器");
        Console.WriteLine(a.i);
        Console.WriteLine(a.s);
        A a1=new A (1);             //调用第二个构造函数
        Console.WriteLine("第二个构造器");
        Console.WriteLine(a1.i);
        Console.WriteLine(a1.s);
        A a2=new A ("我是");         //调用第三个构造函数
        Console.WriteLine("第三个构造器");
        Console.WriteLine(a2.i);
        Console.WriteLine(a2.s);
        A a3=new A (2,"中国人");      //调用第四个构造函数
        Console.WriteLine("第四个构造器");
        Console.WriteLine(a3.i);
        Console.WriteLine(a3.s);    
    }
}

 

运行结果:

 

 

 

 

 

B类继承A类,调用的始终是A的默认的构造函数,注意:当A中只有带参数的构造函数的时候,编译不通过。

静态构造器

 

如下:静态构造器的特点

 

 

以上是关于类的构造函数(器)constructor的主要内容,如果未能解决你的问题,请参考以下文章

构造函数和 ngOnInit 的区别

构造函数和 ngOnInit 的区别

构造器Constructor是不是可被override?

继承与多态——动手又动脑

错误:Implicit super constructor xx() is undefined for default constructor.

js中函数的prototype.constructor是指向函数本身,它有啥用