1. 程式人生 > >C#中子類是否繼承了父類中定義的私有成員

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