美文网首页程序员
C#之派生类的构造函数

C#之派生类的构造函数

作者: 困卡 | 来源:发表于2017-04-05 23:40 被阅读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());
    }
    }
    

    相关文章

      网友评论

        本文标题:C#之派生类的构造函数

        本文链接:https://www.haomeiwen.com/subject/ozhfattx.html