程序员

C#之派生类的构造函数

2017-04-05  本文已影响0人  困卡
语法:
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());
}
}
上一篇下一篇

猜你喜欢

热点阅读