C#学习系列之构造函数
啰嗦
基础学习
构造函数
在创建给定类型的对象时执行的类方法。 构造函数与类具有相同的名称,初始化新对象的数据成员。
class pet
{
public pet(string name)//与类pet同名
{
_name = name;//使用新对象的数据成员
}
protected string _name;//数据成员
}
构造函数的作用
- 实例化后手动给属性赋值
class pet
{
protected string _name;//数据成员
}
pet p=new p();
p._name="xx";
- 实例化时直接自动给属性赋值
class pet
{
public pet(string name)//与类pet同名
{
_name = name;//使用新对象的数据成员
}
protected string _name;//数据成员
}
pet p=new p("xx");
派生类及构造函数
在基类的基础上使用构造函数,派生类的调用顺序与调用方式。
- 调用顺序:实例成员初始化->基类构造函数->派生类构造函数。
- 隐式调用和显式调用:一般在后加:xxx(),通过这种方式可以调用基类的构造函数的使用,减少派生类的定义。
- 调用当前类的其他构造函数:(相当于重载)
pet(int age,string name):this(name){}
pet(string name){}
使用
class pet
{
public pet(string name)
{
_name = name;
}
protected string _name;
virtual public void speak();
}
class dog:pet
{
public dog(string name):base(name)//基类的定义,然后派生类来使用
{
}
override public void speak();//重写基类的虚方法
}
class cat
{
override public void speak();//重写基类的虚方法
}
构造函数的种类
- 实例构造函数:可有参数,因参数类型、个数、顺序不同而存在多个构造函数。
class pet
{
public pet(string name)//与类pet同名
{
_name = name;
}
public pet()//与类pet同名
{
}
}
- 静态构造函数:没有参数、不适用访问修饰符。不可直接调用。
- 私有构造函数:特殊的实例构造函数,无法在其他类中进行实例化。
总结
学习记录