语法:
public DerivedClass ():base(){}
注意: 如果不显式声明调用父类的无参构造函数(base()),那么默认会调用父类的无参构造函数。
无参 Example
class BaseClass
{
public BaseClass() {
Console.WriteLine("BaseClass");
}
}
class DerivedClass:BaseClass
{
public DerivedClass ():base() { // 因为是无参数,所以`:base()`默认可以不写
Console.WriteLine("DerivedClass");
}
}
class Program
{
static void Main(string[] args)
{
DerivedClass derived = new DerivedClass();
// 先调用base的构造方法,再调用子类的构造方法
Console.ReadKey();
}
}
派生类的特点:
1).可以拥有自己的成员
2).可以隐式地从基类继承所有成员,包括方法、字段、属性和事件,但私有成员、构造函数和析构函数等除外。
3).只能从一个类中继承
在C#中,派生类不能继承其基类的构造函数,但通过使用base关键字,派生类构造函数就可以调用基类的构造函数。
当创建派生类对象时,系统首先执行基类构造函数,然后执行派生类的构造函数
示例:
usingSystem;
publicclassPerson//这是一个基类
{
//定义数据成员
publicstringName;//姓名
publiccharSex;//性别
//定义构造函数,以初始化字段
publicPerson(stringname,charsex)
{
Name=name;
Sex=sex;
}
//定义方法成员
publicstringAnswer()
{
returnstring.Format("姓名:{0},性别:{1}。",Name,Sex);
}
}
publicclassStudent:Person//这是一个派生类
{
//扩展数据成员
publicstringSchool;//学校
privateintScore;//成绩
//定义构造函数,自动调用基类的构造函数辅助完成字段的初始化
publicStudent(stringname,charsex,stringschool,intscore)
:base(name,sex)//表示这两个参数基于基类中的构造函数
{
School=school;
Score=score;
}
//扩展方法成员
publicfloatExamine()//返回考试成绩
{
returnScore;
}
}
classTestClass
{
staticvoidMain()
{
//创建Student对象
Students=newStudent("张x伟",'男',"xxxx学院",202);
Console.WriteLine("该生信息如下:");
Console.WriteLine(s.Answer());//调用对象继承来的方法
Console.WriteLine("学校:{0},考试成绩:{1}",s.School,s.Examine());
}
}
网友评论