子类通过父类的构造函数为自己的属性字段赋值

来源:互联网 发布:专业淘宝店铺托管 编辑:程序博客网 时间:2024/04/27 22:06

1.当写好一个类以后,默认会存在一个没有参数的构造函数(即便我们不写构造函数,也会存在这么一个无参的构造函数)

2. 当手动添加一个构造函数以后,会将默认的无参数的构造函数覆盖掉。 

3.类的构造函数是不能被继承的。只能在子类中去调用父类的构造函数。 

4.当父类的构造函数有参数时,子类实例化时,要首先实例化父类(实例化完毕后才会实例化自己的属性),这个时候有错(子类无参数,父类有参数的问题)

//当写好一个子类以后,会有一个默认的无参数的构造函数

//子类继承父类后。父类的构造函数是不能被继承的

//但是,子类也会有自己的构造函数,并且,子类的构造函数会默认调用父类的无参数的构造函数

//此时如果父类中没有无参数的构造函数,会报错

//改造方法

//改造方法2:在父类中增加一个无参数的就OK了   示例:

    class Father

    {

        public string lastName { getset; }//定¨义?姓?氏?

        private  decimal property;//定¨义?工¤资哩?

        public decimal Property

        {

            get

            {

                return property;

            }

            set

            {

                property = value;

            }

 

        }

        public string bloodType { getset; }//定¨义?血a型í

        public Father()

        {

        }

        public Father(string name,decimal pro,string blood)

        {

            lastName = name;

            Property = pro;

            bloodType = blood; 

        }

    }

子类

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace yuxi

{

    class Son : Father

    {

        //public Son(string name, decimal pro, string blood)

        //{

        //    base.lastName=name;

        //    base.Property = pro;

        //    base.bloodType = blood;

        //}

        //也可以这样下。效果同上注释:

        public Son(string name, decimal pro, string blood)

            : base(name, pro, blood)

        { }

        public void PlayGame()

        {

            Console.WriteLine(" my name is{0},my property is{1},my bloodtype is {2},I am a boy , I play games !", lastName,Property,bloodType);

        }

    }

}

原创粉丝点击