C#基础加强--继承中的构造方法

  • 创建对象的时候,调用的是子类构造方法。 执行的时候会依次向上调用,最后从上到下执行构造方法,初始化对象;
  • 默认构造方法的时候,调用的都是无参构造方法;
  • 一旦在父类中添加有参构造函数是,子类在创建时仍然会调用父类的无参构造方法,但是,父类中存在有参构造方法,系统不会再提供默认的构造方法,如果不手动添加无参的构造方法,则运行时会报错。
  • 如果不想调用父类的默认构造方法(无参构造方法),而父类中手动添加了有参构造函数,则只需要在子类构造方法参数的圆括号候加:base(参数) 如下例:
person 定义如下:
  •  class Person
        {
            // 私有变量只能在本类中进行访问
            private string name;
            private int age;
            private char gender;
    
            public Person(string name, int age, char gender)//:base() 默认调用object类的构造方法
    
            {
                this.name = name;
                this.age = age;
                this.gender = gender;
            }
    
            public string Name
            {
                get { return this.name; }
            }
            public int Age
            {
                get { return this.age; }
            }
            public char Gender
            {
                get { return this.gender; }
            }
        }

     

Chiese 定义如下:

class Chinese:Person
    {
        // 中国人特有的属相
        private ShuXiang shuXiang;

        public Chinese(string name, int age, char gender, ShuXiang shuXiang)   // 方法定义
            : base(name, age, gender) // 调用父类的构造方法   // 方法调用
        {
            // 为子类特有的字段进行初始化
            this.shuXiang = shuXiang;
        }

        public void SayHello()
        {
            Console.WriteLine("你好我是中国人,我叫{0},今年{1}岁了,我是{2}生",
                // this.Name, this.Age, this.Gender
                // Name, Age, Gender
                    base.Name, base.Age, base.Gender
                );
            /*
             * 此时使用this表示类型Chinese具有这些属性
             * 虽然没有再类中提供,但是使用继承得到了父类的属性
             * 
             * 此处不适用this是表示不会与局部变量冲突,默认的时候就是this
             * 
             * 使用base表示的是制定调用的父类成员
             */
        }

        public ShuXiang Shuxiang
        {
            get {
                return this.shuXiang;
            }
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值