C#中子类是否继承了父类中定义的私有成员

1.结论:构造函数和析构函数不能被继承。除此以外的其它成员,不论对它们定义了怎样的访问方式,都能被继承。基类中成员的访问方式只能决定派生类能否访问它们;

2.下面的程序用来验证子类对象中存在父类中定义的私有成员

    class Program
    {
        static void Main(string[] args)
        {
            Son son = new Son();//本例中,只实例化了一个子类对象
            son.SonFunc();
        }
    }

    /// <summary>
    /// 父类
    /// </summary>
    class Father
    {
        private int m_age = 0;//父类私有成员
        protected void FatherFunc(Son son)
        {
            this.m_age = 30;//1.this 可访问私有成员
            //判断子类对象son 与 当前对象this 引用是否相同
            //经验证,引用相同 => 2.子类对象中拥有私有成员
            bool IsReferenceEquals = object.ReferenceEquals(son, this);
        }

    }

    /// <summary>
    /// 子类
    /// </summary>
    class Son : Father
    {
        public void SonFunc()
        {
            base.FatherFunc(this);//调用父类方法,将子类对象传进去
        }
    }

其他可参照:https://blog.csdn.net/qq_34343303/article/details/81612940

猜你喜欢

转载自blog.csdn.net/u013986317/article/details/85198612