继承的特性:单根性,传递性。
1.构造函数:在所有的类中,构造函数是不能被隐式继承的。如果子类需要用到父类的构造函数,则需要手动调用。手动调用需要用到关键字base()语法。
例如:
public class Person
{
public Person()
{
//do something;
}
public Person(string str1,string str8):this(str1,null,null,null,null,str8)
{
}
public Person(string str1,string str2,……string strN)
{
//do something;
}
}
public class Student:Person//代表Student类继承了Person类。
{
//此处就说明了子类调用了父类的构造函数并把子类的参数传进父类构造函数当参数。
public Student(string str,int num):base(str,num)
{
//do something;
}
}
当然,子类对象在被创建时(也就是调用子类的构造函数时),如果没有用base来显示调用,则会先调用父类的无参构造函数。
跟base对应的还有一个关键字this.this关键字是针对类本身的,跟子类或父类没有关系。在上例中,用到this关键字,是类中构造函数默认会调用所有构造函数中参数最多的构造函数,如果this所在的构造函数不需要那么多参数的话,传一个空就行了,也就是如果是数值类型,就传0,bool类型就传false,引用类型就传null.